关闭

深入浅出WPF-3

401人阅读 评论(0) 收藏 举报
分类:

属性赋值

通过Attribute=Value语法赋值时,由于XAML的语法限制,Value的值只能是一个字符串。这就引出两个问题:
如果一个类能使用XAML语言进行声明,并且允许它的Propetry与XAML的Attribute互相映射,那就需要为这些Propetry准备适当的转换机制。
由于Value是个字符串,所以起格式复杂度有限,尽管转换格式里包含一定的按格式解析字符串的功能以便转换成复杂的目标对象,但这会让最终的XAML使用者头疼不已。
第一个问题的解决方案是使用TypeConverter类的派生类,在派生类里重写TypeConverter的一些方法。第二个问题的解决方法就是使用属性元素。

x名称空间的成员

x名称空间里的成员是专门给XAML的编译器看的,用来引导XAML编译器把XAML代码编译成CLR代码

Attribute

Attribute是语言层面的东西,是给编译器看的,Propetry是面向对象层面的东西,是给编程逻辑看的。

Class

x:Class的值所指示的类型在声明中必须使用partial关键字。

Name

一个XAML便签对应着一个对象,这个对象一般是一个空间类的实例,类是引用类型,一般是“引用者->实例”的成对出现,而且我们只能通过引用来访问实例,当一个实例不再被任何引用者所引用时,他就会被当成内存垃圾而销毁。
x:Name的作用有两个
(1)告诉XAML编译器,当一个标签带有x:Name时除了为这个标签生成对应的实例还要为这个实例声明一个引用变量,变量名就是x:Name的值。
(2)将XAML标签所对应的对象的Name属性(如果有)也设置为x:Name的值,并把这个值注册到UI树上,以方便查找。
如果一个标签没有Name属性,那么x:Name的作用就是仅仅为实例创建引用变量了。
例如

<Button x:Name = "btn_Test" Content = "OK"/>


Button btn_Test = new Button();
btn_Test.Name = "btn_Test";

Key

最自然的检索方式莫过于使用“Key-Value”对的形式了。在XAML文件中,我们可以把需要使用多次使用的内容提取出来放在资源字典里,需要使用这个资源我们就用它的Key检索出来,x:Key的作用就是为资源贴上用于检索的索引。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:33719次
    • 积分:928
    • 等级:
    • 排名:千里之外
    • 原创:60篇
    • 转载:5篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论