备注:类关系结构图如下:
X 名称空间
- X 名称空间映射的是 http://schemas.microsoft.com/winfx/2006/xaml。
- X 名称空间包含的东西可以分为 Attribute、标记扩展和 XAML 指令元素三类。
X 名称空间中的 Attribute
x:Class
这个 Attribut 的作用是告诉 XAML 编译器将 XAML 标签的编译结果与后台代码指定的类合并,在使用 x:Class 时必须遵循以下要求。
- 这个 Attribute 只能用于根节点,意思是 XAML 代码第一行。
- 使用 x:Class 的根节点的类型要与 x:Class 的值所指示的类型保持一致。
- x:Class 的值所指示的类型在声明时必须使用 partial 关键字。
x:ClassModifier
这个 Attribut 的作用是告诉 XAML 编译器由标签编译生成的类具有怎么样的访问控制级别。
- 标签必须具有 x:Class 属性
- x:ClassModifier 的值必须与 x:Class 所指示类访问控制级别一致。
x:ClassModifier="internal"
.
x:Name
x:Name 的作用有两个:
- 告诉 XAML 编译器,当一个标签带有 x:Name 时,除了为这个标签生成对应实例外,还要为这个实例声明一个引用变量,变量名就是 x:Name 的值。
- 将 XAML 标签所对应对象的 Name 属性(如果有)也设为 x:Name 的值,并把这值注册到 UI 树上,以方便查找。
- Name 属性是定义在 FrameworkElment 类中,然后 x:Name 的范围比 Name 稍微广些。
x:FieldModifier
默认情况下,这些字段的访问级别按照面对对象的封装原则被设置成 internal,如果需要改变就采用该属性。注意,如果写该属性,前提是有 x:Name 属性。
x:Key
WPF 中,我们可以把需要多次使用的内容提取出来放在资源字典中。几乎每个元素都有自己的 Resources 属性,这个属性是 Key-Value 式集合。其中的 Key 就是用 x:Key 来写。
一个例子
X 名称空间中的标记扩展
x:Type 和 x:Null 你都知道怎么用
x:Array
他是一个同种类型的数组。
备注:别忘了添加命名空间 xmlns:sys="clr-namespace:System:assembly=mscorlib"
x:Static
作用:用来在 XAML 中访问 C# 语法中声明的 static 成员。
X 名称空间中的指令元素
x:Code
作用是:把 C# 中的代码放在 XAML 中去,但是一般没人那么做。
x:XData
作用是:和 XmlDataProvider 联合一起使用,提供数据源。