C#中x名称空间包含的工具及其作用
在x名称空间下包含三种类型的工具:
一、Attribute类型的工具
二、标签扩展类型的工具
三、XAML指令元素类型的工具
一下列出x名称空间中包含的工具:
名称 | 种类 |
x:Array | 标签扩展 |
x:Class | Attribute |
x:ClassModifier | Attribute |
x:Code | XAML指令元素 |
x:FieldModifier | Attribute |
x:Key | Attribute |
x:Name | Attribute |
x:Null | 标签扩展 |
x:Share | Attribute |
x:Static | 标签扩展 |
x:SubClass | Attribute |
x:Type | 标签扩展 |
x:TypeArguments | Attribute |
x:Uid | Attribute |
x:XData |
XAML指令元素 |
x:Class
新建的WpfApplication中会有这样的XAML语句:x:Class="WpfApplication.MainWindow"。这是告诉XAML编译器编译的结果需要与后台中的Namespace为WpfApplication和MainWindow-Class结合。
使用
x:class要求如下:
x:class只能用于根节点;
x:class的根节点的类型要与具体的值类型一致;x:class的值的类型声明时必须使用partial关键字。
x:Name
首先,必须了解的是XAML是一种声明式语言,XAML标签声明的是对象,对象一般就是控件的实例。在.NET中,一般实例会对应一个引用变量,x:Name就起到了这样的作用。x:Name还有个作用,就是将XAML标签对应的对象Name属性(有的话)也设为x:Name的值。
根据上诉总结,x:Name两个作用
- 为XAML标签声明的实例声明一个引用变量。
- 将XAML标签对应的对象的Name属相设为x:Name的值。
x:FieldModifier
上述中用x:Name声明了引用变量了,既然是变量,那难免会要设置下访问级别。与C#一样,这些变量默认为internal。假如你想跨程序集去访问窗口中元素,这时需要把改窗口元素的引用变量访问级别声明了public。这就用到了x:FieldModifier。
使用方法:(使用前提:存在引用变量,即需要有x:Name。)
x:Array
x:Array是一个类型已知的ArrayList,ArrayList的类型是有x:Array的Type属性确定。
x:Static
x:Static作用是使用数据类型中的static成员。
x:Share
x:Share与x:Key结合使用。使用x:Key时是否有这样的疑惑,用Key去多次检索资源中的对象,是否为同一个对象。这时就要x:Share决定了。
当x:Share的值为false时,每次用x:Key去检索这个对象都是不同的,都是这个对象的新副本;设为true,则每次检索到同一个。默认值为true。
x:XData
x:XData是用在:在XAML中使用数据提供者(如XmlDataProvider)提供数据时。
本人啥也不会,瞎拷着玩的x:Type
x:Type的值应该是一个Type的名称。Type,是指C#中所有数据类型在编程层面上的抽象。当需要在XAML中想表达某个数据类型是就需要用到x:Type了。