深入浅出WPF-3

原创 2016年08月31日 15:33:50

属性赋值

通过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的作用就是为资源贴上用于检索的索引。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

【分享】深入浅出WPF全系列教程及源代码

本人10月份提出离职,但是交接很慢,估计年底才会交接完,趁着交接之际,自学了一下WPF,因为这是微软未来的发展趋势,自WIN7以来包括前不久发布的WIN8,核心还是WPF,在此,将自己的学习成果做一个...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

【分享】深入浅出WPF全系列教程及源代码

前言:WPF之What&Why WPF之XMAL----XMAL概览 WPF之从0开始学习XMAL WPF学习---系统的学习XAML语法 WPF学习之X名称空间详...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

《深入浅出WPF》学习笔记之三

视频地址:在XAML中引用类库及代码后置 首先完成一个WPF用户控件库项目,得到.dll类型的库文件,以下例子创建一个简单的button控件。 ...
  • goon202
  • goon202
  • 2016年05月12日 23:24
  • 420

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

深入浅出WPF(7)——数据的绿色通道,Binding(上)

深入浅出WPF(7)——数据的绿色通道,Binding(上) 小序: 怎么直接从2蹦到7啦?!啊哦,实在是不好意思,最近实在是太忙了,忙的原因也非常简单——自己的技术太差了,还有很多东西要...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入浅出WPF-3
举报原因:
原因补充:

(最多只允许输入30个字)