XAML 2009 语言功能

XAML 2009 是新 XAML 语言功能的简写术语,其扩展现有的 XAML 语言规范。 XAML 2009 引入了几个新指令和结构。 这些包括 x:Arguments 指令x:FactoryMethod 指令x:Reference 标记扩展x:TypeArguments 指令以及共同语言基元的内置类型(例如 x:Char)。

在 WPF 和 Visual Studio 中支持 XAML 2009

在 WPF 中,可以使用 XAML 2009 功能,但仅针对未进行 WPF 标记编译的 XAML。 标记编译的 XAML 以及 BAML 形式的 XAML 当前不支持 XAML 2009 语言关键字和功能。

请注意,在 WPF 中加载松散的 XAML 的现有技术也有可能受到 CLR 类型的安全和访问限制,该类型系统比标记编译的 XAML 更加严格。 有关更多信息,请参见 安全性 (WPF)WPF 安全策略 — 平台安全性

XAML 2009 还引入了一些附加功能,可修改曾经的 XAML 2006 构造或修改基本标记窗体。

X:key 作为对象元素

XAML 2009 可支持 x:Key 作为对象(具有对象元素值的属性元素);但是 XAML 2006 仅支持 x:Key 作为属性。 请参阅 x:Key Directive的“XAML 2009”一节。

属性元素上的 xmlns

XAML 2009 可以支持属性元素上的 XAML 命名空间 (xmlns) 定义,而 XAML 2006 只支持对象元素上的 xmlns 定义。

事件特性

对于由事件支持的特性,XAML 2006 会假定涉及到了标记编译并将事件提交给标记编译。 XAML 2009 支持类似标记扩展的标记窗体,其不同于事件布线,直至运行时解析/加载 XAML。 但是,WPF 应用程序和 WPF UI 的 XAML 方案通常不使用此功能。 WPF 和其 XAML 2006 实现使用在 UIElement 级别定义的路由事件的事件处理程序布线组合及其标记编译器步骤,用于其众多事件特性处理。 标记编译器还预处理生成操作声明用于标记编译器的 XAML 中找到任何事件属性。

另请参阅