x实际上就是xaml的首字母,x名称空间里面的成员,比如x:Class、x:Name....是用来引导xaml编译器把xaml代码变异成CLR代码,实际上这些个名称,就是专门给xaml编译器看的;
与C#语言一样,xaml也有自己的编译器,xaml语言会被解析并编译,最终形成微软中间语言存储在程序集中。在解析和编译xaml语言过程中,我们经常需要告诉编译器一些重要的信息,比如xaml代码的编译结果应该与那个C#代码的编译结果合并、使用xaml声明的元素是public还是private访问级等等。这些让程序员能够与xaml编译器沟通的工具就存在x名称空间中。
一、在xaml中出现的形式有三种:
1.标记扩展:x:Array、x:Null、x:static、x:Type;
2.xaml指令元素:x:XData、x:Code;
3.Attribute:x:Class、x:ClassModifier、x:Name、x:FieldModifier、x:Key、x:Shared、x:SubClass、x:Type、x:TypeArguments、x:Uid;
二、详解
1.x:Class、x:ClassModifier一对,前者命名空间、后者改该命名空间下改xaml文件的访问级别,默认为public,如果修改internal,必须同步修改.cs文件的访问级别,强调一下,.cs文件必须是partial关键字修饰;
2.x:Name、x:FieldModifier一对,x:FieldModifier默认为internal,如果改为public,就可以跨程序及访问空间,前提是给控件取好名字,并保证不能重复名称;
3.x:Null,给xaml中需要赋值null的属性赋值为null,不如style=“{x:Null}”