• 快速掌握WPF XAML基本知识


    本篇从如下两个方面学习WPF XAML:

    1、基本概念

    2、基本语法

    一、基本概念

    1、XAML是派生自XML的可扩展应用程序标记语言(Extensible Application Markup Language)。微软创造。应用在WPF,WF,Silverlight,Metro App等开发技术中。

    2、在WPF中,XAML用来开发用户界面。继承了XML的Tag,Attribute等语法。另有一些语法上的创新。

    3、在WPF中,XAML运行在CLR之上,但它不编译为IL,而是编译为BAML代码,在运行时会被解析成CLR类型(Types)。

    4、WPF中XAML是大小写敏感的。

    二、基本语法

    1、Tag语法=对象元素(Object Elements)

      每个标签即是一个对象元素,将被解析为一个WPF Framework(主要来自PresentationFramework.dll)中的类的实例。下面的代码就是一个对象元素,运行时会被解析为一个Button对象实例。

    <Button></Button>

    或写成

    <Button />

    2、Attribute赋值语法

    2.1 普通字符串赋值。下面代码给Button的Property和Event赋值。字符串将被通过包装好的TypeConverter来转换成对象。TypeConverter使用C#的Attribute技术来实现的。

    <Button Content="aaa" Click="Button_Click" />

    2.2 标记扩展赋值。用花括号这种方式赋值就叫标记扩展赋值。常用的地方是在用到绑定和资源的时候。

    <Button Command="{Binding Copy}" />

    2.3 属性元素赋值。有的时候简单字符串赋值不了的,就用属性元素赋值。

    <Button>
        <Button.Content>aaa</Button.Content>                
    </Button>

    2.4 内容赋值。控件要有Content这个属性,也就是要继承自ContentControl这个类,才能这么赋值。夹在标签中间。

    <Button>aaa</Button>

    2.5 集合赋值。下面例子是给StackPanel.Children这个属性赋值一个集合,被省略了。这个属性的类型是UIElementCollection。在这个例子,我们也看到WPF支持一些省略的写法,在实际开发中运用,可以使XAML代码更简洁。

    <StackPanel>
        <Button>a</Button>
        <Button>b</Button>
    </StackPanel>

    3、命名空间。

    一般用在Root元素上(Application,Window,UserControl,Page,ResourceDictionary等)。如下例子,xmlns为引入命名空间的attribute。第一行xmlns是没有指定别名的,是默认命名空间,它指定的命名空间包含了微软提供所有的XAML控件的程序集。第二行xmlns别名是x,也是微软提供的命名空间,这里面主要包含了一些关于解析Xaml语言的程序集。第三行xmlns是自己引入的,开发人员自己写的控件等,可以通过命名空间这种方式引用到XAML文档来使用。

    <Window x:Class="WpfFirst.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:local="clr-namespace:System;assembly=System"
            Title="MainWindow" Height="350" Width="525">    
    </Window>

    4、附加属性,附加事件。

    下面例子,Panel.ZIndex就是附加属性,而附加事件是界面上用不了的。具体在写属性和事件时候讨论。

    <StackPanel>
      <Button Panel.ZIndex="1">a</Button>
      <Button Panel.ZIndex="2">b</Button>
    </StackPanel>

    5、树。

    XAML文档是树状结构的。在WPF中,有逻辑树(Logical Tree)和可视树(Visual Tree)的概念,在运行时会维护这两棵树。逻辑树是以我们看到的控件为节点的,这些控件一般继承与FrameworkElement or FrameworkContentElement,而可视树能看到控件内部的元素,这些元素一般继承自Visual类。WPF提供了两个辅助类(LogicalTreeHelper and VisualTreeHelper)来操作这两棵树。

  • 相关阅读:
    ArcGIS Engine获取单条要素的标注(LABEL)内容
    推荐一个winform第三方控件QIOS DevSuite
    解决C#,CAD二次开发实例化AcadApplicationClass失败
    skyline中屏蔽或自定义InformationWindow和NavigationMap的右键菜单
    (转)Skyline TEPro6.0版本在二次开发方面的改进总结
    skyline TEP 6 开发帮助文档CHM中文汉化版
    CCIE一年后的心语(转)
    PC 到 PC的共享
    Mysql 更改某一字段的内容为另一字段加上字符串
    Ralis: 连接数据库并查询
  • 原文地址:https://www.cnblogs.com/xjxz/p/WPFXAML.html
Copyright © 2020-2023  润新知