本章内容
l XAML定义
l 元素和特性
l 命名空间
l 属性元素
l 类型转换器
l 标记扩展
l 对象元素的子元素
l 编译:将XAML与过程式代码混合使用
在前一章中,我们初步认识了新的可扩展应用程序标志语言XAML,了解了它在把图形设计融入开发流程中发挥的重要作用。即使你没有与图形设计师一起工作的打算,也应该对XAML足够熟悉,这是因为:
l XAML通常是最简明的表示用户界面或对象层级关系的方式。
l 使用XAML时前端显示和后端逻辑是分离的,即使你们在同一个团队,这对于维护也是很有帮助的。
l 你可以把XAML贴入像XamlPad(Windows SDK中的工具)这样的工具中来查看结果,这是不需要编译的。
l XAML是一种WPF相关工具都要使用到的语言。
因此,本章将转入讲解XAML的机制,深入介绍XAML的语法并展示如何让它与过程式代码相关联。与前一章不同,这是一次相当深入的挖掘!但是,在阅读本书其他章节之前,拥有一些这样的背景知识,不仅对于理解代码示例有帮助,也对每个功能中API设计方式有了更深入的体会。
提示 在本章中,有几种方式来运行XAML的示例,你可以以电子方式下载本书的源代码。例如,你可以
q 保存.xaml文件的内容,然后使用IE浏览器打开它(只要你已经安装了.NET Framework
3.0以上的版本)。
q 从Windows SDK中运行XamlPad工具(在附录中介绍)并将内容放入XamlPad底部的框中。
q 创建一个基于WPF的Visual
Studio项目,并把想放的内容替换主窗口或者页面的内容
中,另外还需要修改一些代码。
前面两种方式最适合于起步时使用,可以用来做很多实验。在本章末尾,我将讲解如何将Visual Studio项目中的XAML与其他内容混合起来。
2.1 XAML定义
XAML是一种相对简单、通用的声明式编程语言,它适合于构建和初始化.NET对象。.NET Framework 3.0包括了一个XAML编译器和运行时解析器,还有一个插件允许你在IE浏览器中查看独立的基于WPF的XAML文件(有时叫做松散XAML页面)。
因为XAML仅仅是一种使用.NET API的方式,想把它与HTML、可伸缩向量图形(Scalable Vector Graphics,SVG)或者其他特定于域的格式或语言作比较,是完全错误的。XAML由一些规则(告诉解析器和编译器如何处理XML)和一些关键字组成,但是它自己没有任何有意义的元素。因此,如果在没有WPF这样的框架的基础上讨论XAML,就如同在没有.NET Framework的基础上讨论C#一样。
XAML在WPF中扮演的角色通常是令人困惑的,因此第一件要搞清楚的事情是WPF和XAML可以独立使用,它们并不是互相依赖的。虽然XAML最初是为WPF而设计的,但它也可以应用于其他技术(如Windows Workflow Foundation,WF)。由于XAML的通用性,实际上可以把它应用于任何.NET技术。然而,是否在使用WPF时使用XAML是可选的,每一件XAML能做的事情完全可以由任何一种你喜欢的.NET语言来实现(但是反过来则不行)。但是,由于本章开始提到的那些使用XAML的好处,很少会看到在现实世界中使用WPF但却不使用XAML的情况。





