XAML(Extensible Application Markup Language的简写)是用于实例化.NET对象的标记语言。它是一种基于通用XML语法、专门用于表示一棵.NET对象树的语言。XAML有WPF XAML、XPS XAML、Silverlight XAML、WF XAML四个子集。
XAML不仅要能够解决设计协作问题,它还需要快速运行。尽管XML的格式可以很灵活并且很容易地迁移到其他工具和平台,但它们未必是最有效的选择。XML的设计目标是具有逻辑性、易读而且简单,没有被压缩。
WPF使用BAML(二进制应用程序标记语言)来克服这个缺点。原理:XAML→BAML→作为资源嵌入到最终的DLL或EXE程序集中。
1.XAML文档
XAML文档的基本原则如下:
● XAML文档中的每个元素都映射为.NET类的一个实例。元素的名称也完全对应于类名。
● 与所有XML文档一样。可在一个元素中嵌套另一个元素。
● 可通过特性(attribute)设置每个类的属性(property)。如遇到特性不能设置时,需要通过特殊的语法使用嵌套的标签(tag)。
XAML文档的基本框架如下:
图2—1 XAML文档框架
该文档中有两个元素——顶级元素Window和一个Grid元素。其中顶级元素除了Window元素外,还有Page元素和Application元素。
第一行表示一个类,以后台代码的类名相对应。
第二行和第三行是两个名称空间。第二行的名称空间是WPF核心名称空间。它包含所有WPF类,包括用来构建用户界面的控件。而第三行的名称空间是XAML的名称空间。它包含各种XAML实用特性,这些特性可影响XAML文档的解释方式。★知识扩展:在元素名称之前放置名称空间前缀x来使用该名称空间。
第四行是Window的Title、高宽属性。
除此之外,还有Grid元素,设计内容在其开始标签和结束标签之内。
2.XAML中的属性和元素
下图为Grid面板中的属性设置
图2—2 XAML属性
Grid的Name属性采用了简单属性方式来设置。
Grid的Backgroud属性使用了复杂属性方式来设置。
除此之外,还有附加属性,附加属性主要用来控件布局。 ★知识扩展:附加属性——可用于多个控件但在另一个类中定义的属性。如下面的示例图
图2—3 附加属性文档图
Grid定义了行属性,通过设置Grid.Row的值来设计按钮的布局位置。
3.特殊符号与空白
下图是演示如何在窗体中显示特殊符号和空白
图2—4文档
下表总结了特殊字符的字符实体
特殊字符 | 字符实体 |
小于号(<) | < |
大于号(>) | >; |
&符号(&) | &; |
引号(“) | "; |
4.事件
用于关联事件处理程序的语法为:事件名=“事件处理程序方法名”
有两种途径可以设置关联事件:
① 通过XAML属性的方法;
② 通过属性窗口
第一种方法:
第二种:
但无论是哪一种方法都能达到同样的效果。
5.XAML文档的后台代码
★知识扩展:部分类(partial class)允许在开发阶段把一个类分成两个或者更多独立的部分,并在编译过的程序集中把这些独立的部分融合到一起。