XAML 2009 语言功能
XAML 2009 是扩展现有 XAML 语言规范的新 XAML 语言功能的简写术语。 XAML 2009 引入了多个新指令和构造。 其中包括 x:Arguments 指令;x:FactoryMethod 指令;x:Reference Markup Extension;x:TypeArguments 指令;公共语言基元的内置类型(例如 x:Char
)。
WPF 和 Visual Studio 中的 XAML 2009 支持
在 WPF 中,可以使用 XAML 2009 功能,但仅适用于未编译 WPF 标记的 XAML。 标记编译的 XAML 和 XAML 的 BAML 形式目前不支持 XAML 2009 语言关键字和功能。
请注意,在 WPF 中加载松散 XAML 的现有技术对 CLR 类型和类型系统具有可能的安全性和访问限制,这些限制比标记编译的 XAML 更具限制性。 有关详细信息,请参阅 安全(WPF) 或 WPF 安全策略 - 平台安全性。
XAML 2009 还引入了修改以前的 XAML 2006 构造或修改基本标记表单的其他功能。
x:Key 作为对象元素
XAML 2009 可以支持 x:Key
作为对象(具有对象元素值的属性元素):但是,XAML 2006 仅支持 x:Key
作为属性。 请参阅 x:Key 指令的“XAML 2009”部分。
属性元素上的 xmlns
XAML 2009 可以支持属性元素上的 XAML 命名空间(xmlns)定义;但是,XAML 2006 仅支持对象元素上的 xmlns 定义。
事件属性
对于由事件支持的属性,XAML 2006 假定涉及标记编译并将事件提交到标记编译。 XAML 2009 支持类似于标记扩展的标记形式,它延迟事件连接,直到运行时分析和加载 XAML。 但是,WPF UI 的 WPF 应用程序和 XAML 方案通常不使用此功能。 WPF 及其 XAML 2006 实现将事件处理程序连接组合用于在 UIElement 级别定义的路由事件及其标记编译器步骤,用于大部分事件属性处理。 标记编译器还会预处理 XAML 中找到的任何事件属性,其中生成操作声明使用标记编译器。