XAML并不是HTML。尽管XAML在元素的声明、程序样式的设置和指定事件处理程序上都和HTML非常类似,但是XAML是基于XML的,它是WPF的外在表现形式。而HTML主是一种标记语言,仅仅是用来为浏览器呈现页面内容。XAML除了用来呈现信息和请求用户输入等基本的功能外,它还包含了一些高级的特性,例如它提供了对动画和3D众多方面的支持。
XAML是可扩展的,正如它的名字指明的那样。开发人员可以创建自定义的控件、元素和函数来扩展XAML。而且由于XAML各元素在本质上就是WPF类的映射,所以开发人员可以很轻松地使用面向对象的技术对XAML元素进行扩展。也就是说我们可以开发一些自定义控件和组合元素,并将它公开给用户界面设计人员和其它的开发人员使用。XAML、WindowsPresentation Foundation 和 Microsoft .NET Framework3.0 XAML 是Microsoft® Windows Presentation Foundation (WPF) 的一部分。WPF 是Microsoft® .NET Framework 3.0 中处理基于 Windows 的应用程序或基于 Web浏览器的客户端应用程序的可视外观的一类功能。基于 WPF 的应用程序可以在 Windows Vista? 上运行,也可以在安装了Microsoft .NET Framework 3.0(如果是基于 Web 浏览器的客户端应用程序,还需要安装 InternetExplorer 7.0)的早期版本的 Windows 上运行。
在 Silverlight 体系结构和Silverlight 应用程序开发过程中,XAML 发挥着多种重要作用:
- XAML 是用于声明 Silverlight UI 及该 UI 中元素的主要格式。通常,项目中至少有一个 XAML文件表示应用程序中用于最初显示的 UI 的"页面"比喻。其他 XAML 文件可能声明其他用于导航 UI 或模式替换 UI的页。另外一些 XAML 文件可以声明资源,如模板或其他可以重用或替换的应用程序元素。
- XAML 是用于声明样式和模板的格式,这些样式和模板应用于 Silverlight 控件和 UI的逻辑基础。您可以执行此操作来模板化现有控件,或作为为控件提供默认模板的控件作者来执行此操作。
- XAML 是用于为创建 Silverlight UI 和在不同设计器应用程序之间交换 UI设计提供设计器支持的常见格式。最值得注意的是,Silverlight 应用程序的 XAML 可在 Expression Blend产品与 Visual Studio之间互换。
- WPF 还在 XAML 中定义其 UI。就与 WPF XAML 的关系而言,Silverlight XAML 使用共享的默认XAML 命名空间,且对于其 XAML 词汇具有近似的 WPF 子集关系。因此,XAML 为 UI 在 Silverlight 与WPF 之间迁移提供了一种有效途径,这样,您就可以针对 Silverlight 执行 UI 设计,然后几乎无需重新设计 UI图面即可将此相同设计迁移到 WPF。
- Silverlight XAML 定义 UI 的可视外观,而关联的代码隐藏文件定义逻辑。可以对 UI设计进行调整,而不必更改代码隐藏中的逻辑。就此作用而言,XAML简化了负责主要可视化设计的人员与负责应用程序逻辑和信息设计的人员之间的工作流。
- 由于支持可视化设计器和设计图面,因此,XAML 支持在早期开发阶段快速构造 UI原型,并在整个开发过程中使设计的组成元素更可能保留为代码访问点,即使可视化设计发生了巨大变化也不例外。
- 根据您自己在开发过程中所扮演的角色,您可能无法广泛地与 XAML 语言或 XAML 语法交互。您与 SilverlightXAML 交互的程度还取决于您所使用的开发环境、是否使用交互式设计环境功能(如工具箱和属性编辑器)以及 Silverlight应用程序的范围和目的。尽管如此,在开发 Silverlight 应用程序的过程中,您还是可能能够使用基于文本的编辑器在元素级编辑Silverlight XAML 文件。本主题旨在使您了解 XAML 语言和 XAML 语法的具体信息。此外,本主题还着重介绍XAML 可能特定于 Silverlight 的用法和行为的某些方面(与其他利用 XAML 的框架(如 WPF 或WCF)相对照)。使用此信息,您应能够放心地以文本表示形式编辑用于 Silverlight 的 XAML,当此 XAML文件由工具、标记编译操作或 Silverlight 运行时加载应用程序使用时,保持其声明和目的的有效性。