WPF-4:x名称空间

来自《深入浅出WPF》(刘铁猛)

x代表XAML的首字母。

大凡包含XAML代码的WPF程序都需要通过语句xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"来引入http://schemas.microsoft.com/winfx/2006/xaml这个名称空间。

x名称空间映射的是http://schemas.microsoft.com/winfx/2006/xaml,它包含的类均与解析XAML语言相关,所以也可以称之为‘XAML名称空间’。


x名称空间中的Attribute:

    1)x:Class:告诉XAML编译器将XAML标签的编译结果与后台的代码中指定的类合并。这个attribute只能用于跟节点;跟节点的类型要与值所指示的类型保持一致;值所指示的类型在声明时必须使用partial关键字;

    2)x:ClassModifier:告诉XAML编译由标签编译生成的类具有怎样的访问控制级别;

    3)x:Name:XAML这种对象声明语言只负责声明对象而不负责为这些对象声明引用变量。如果我们需要为对象准备一个引用变量以便在C#代码中直接访问就必须显示的告诉XAML编译器--为这个对象声明引用变量,这时x:Name就起作用了。

对于那些没有Name属性的元素,为了在XAML声明时也创建引用变量以便在C#代码中访问,我们就只能使用x:Name。因为x:Name的功能涵盖了Name属性的功能,所以全部使用x:Name以增强代码的统一性和可读性。

    4)x:FieldModifier: 用来在XAML里改变引用变量的访问级别。因为x:FieldModifier是用来改变引用变量访问级别的,所以使用x:FieledModifier的前提是这个标签同时也使用x:Name,不然何来的引用变量。

    5)x:Key:为资源贴上用于检索的索引。

为了在XAML中使用String类,我们用xmlns:sys="clr-namespace:System;assembly=mscorlib"引用了mscorlib.dll,并把其中的System名称空间映射为XAMLz中的sys名称空间。

调用一个拥有Resources属性的对象的FindResource方法就可以在它的资源字典里检索资源,检索到资源之后再把它恢复成正确的数据类型就可以使用了。如:

    string str=this.FindResource("myString") as string;

    this.textBox1.Text=str;

    6)x:Shared: 每当我们把某些对象当做资源放进资源字典里后我们可以把他们检索出来重复使用。那么,每当他们检索到一个对象时,我们得到的究竟是同一个对象还是这个对象的副本。

默认情况下,x:Shared="true",得到的是同一个对象。


x名称空间中的标记扩展:

    MarkupExtension类的直接或间接派生类。

    1)x:Type:表达某个数据类型

    2)x:Null:显式的对一个属性赋一个空值

    3)x:Array:通过它的Items属性向使用者暴露一个类型已知的ArrayList实例,ArrayList内的成员类型由x:Array的Type指明。

    4)x:Static:在XAML文档中使用数据类型的static成员,因为XAML不能编写逻辑代码,所以使用x:Static访问的static成员一定是数据类型的属性或字段。

如果一个程序需要国际化支持,一般会把需要显示的字符串保存在一个资源类的static属性中,所以支持国际化的程序UI中对x:Static的使用非常频繁。


XAML的指令元素:

    1) x:Code: 可以包含一些本应放置在后置代码中的C#代码(不建议这么做);

    2)x:XData:想在XAML里声明一个带有数据的XmlDataProvider实例,那么XmlDataProvider实例的数据就要放在x:XData标签的内容里。





猜你喜欢

转载自blog.csdn.net/huan_126/article/details/80063224