概述
XAML命名空间实际上是XML命名空间概念的扩展。指定XAML命名空间的技术依赖于XML命名空间语法、使用URL作为命名空间标识符的约定,使用前缀提供从同一标记源中引用多个命名空间的方法,诸如此类,XML命名空间的XAML定义中增加的主要概念是:XAML命名空间既暗指标记用法的唯一范围,也影响特定CLR命名空间和引用的程序集对标记实体的潜在支持方式。
Attribute
Attribute是语言层面的东西,是给XAML编译器看的,Property是面向对象层面的东西,是给编程逻辑用的。在使用XAML编程的时候,如果你想给他加上一些特殊的标记从而影响XAML编译器对他的解析,那么就要对他添加一些Attribute。
常用的一些Attribute
- x:Class:这个Attribute主要告诉XAML编译器,编译的XAML将和哪一个类合并。使用x:Class要注意,这个Attribute只能用于根节点,指向的类必须使用关键字partial
- x:ClassModifier:这个Attribute主要告诉XAML编译器,有标签编译生成的类具有怎样的访问控制级别
- x:Name:这个就如Winform中的Name、Html中的ID一样
- x:FieldModifier:这个就是用来在XAML里改变引用变量访问级别的
- x:Key:在XAML文件中,我们可以把很多需要多次使用的内容提取出来放在资源字典中,需要用到的时候就用这个Key把它检索出来
- x:Shared:默认为true,我们得到的是同一个对象,如果是false,那么我们得到的是这个对象的一个新副本
标记扩展
标记扩展实际就是一些MarkupExtension类的直接或间接派生类,x名称空间中就包含一些这样的类,所以称其为x名称空间标签的标记扩展。
- x:Type:x:Type的值是一个数据类型的名称,编程中也会用到数据类型本身
- x:Null:在C#语言里,我们用null关键字来表示空值,在XAML里我们用x:Null来表示空值
- x:Array:这个的作用就是通过它的Items属性向使用者暴露一个类型已知的ArrayList实例,ArrayList的成员类型由x:Array的Type指明
- x:Static:在XAML文档中使用数据类型的static成员
XAML指令元素
- x:Code:可以将逻辑代码放到XAML中运行
- x:XData:数据源,在该标签内的内容可以作为数据源使用