XAML
XAML(Extensible Application Markup Language的简写,发音为“zammel")是用于实例化.NET对象的标记语言。尽管XAML是一种可应用于诸多不同问题领域的技术,但其主要作用是构造WPF用户界面。换言之,XAML文档定义了在WPF应用程序中组成窗口的面板、按钮以及各种控件的布局。
一、理解XAML
1.1.WPF之前的图形用户界面
使用传统的显示技术,从代码中分离出图形内容并不容易。对于windows窗体应用程序而言,关键问题是创建的每个窗体完全都是由C#代码定义的。在将控件拖动到设计视图并配置控件时,visual studio 将在相应的窗体类中自动调整代码。但图形设计人员没有任何可以使用C#代码的工具。
1.2.XAML变体
使用XAML表示整个XAML语言,它是一个基于通用XAML语法、专门用于表示一棵.NET对象树的语言(这些语言可以是窗口中的按钮、文本框,或是您已经定义好的自定义类。实际上,XAML甚至可用于其他平台来表示非.NET对象)。
XAML还包含如下几个子集:
1.WPF XAML包含描述WPF内容的元素,如矢量图形、控件以及文档。目前,它是最重要的XAML应用;
2.XPS XAML是WPF XAML的一部分,它为格式化的电子文档定义了一种XML表示方式;
3.Sliverlight XAML是一个用于Microsoft Silverlight应用程序的WPF XAML子集;
4.WPF XAML包括描述WF(Work Flow,工作流)内容的元素。
1.3.XAML编译
WPF使用BAML(Binary Application Markup Language,二进制应用程序标记语言)来克服这个缺点。BAML并非新事物,它实际上就是XAML的二进制表示。当在Visual Studio中编译WPF应用程序时,所有XAML文件都被转换成BAML,这些BAML然后作为资源嵌入到最终的DLL或EXE程序集中。BAML是标记化的,这意味着较长的XAML被较短的标记替代。BAML不仅明显小一些,还对其进行了优化,从而使它在运行时能够更快的解析。