x:Class 属性

更新:2007 年 11 月

配置 XAML 编译以便在标记与代码隐藏之间联接分部类。代码分部类在公共语言规范 (CLS) 语言的单独代码文件中定义,而标记分部类由代码生成在 XAML 编译期间创建。

XAML 属性用法

<object x:Class="namespace.classname"...>
  ...
</object>

XAML 值

namespace

可选。指定一个包含由 classname 标识的分部类的 CLR 命名空间。如果指定了 namespace,则用一个点 (.) 来分隔 namespace 和 classname。

classname

必需。指定连接加载的 XAML 和该 XAML 的代码隐藏的分部类的 CLR 名称。 

备注

x:Class 可以声明为充当可扩展应用程序标记语言 (XAML) 元素树的根元素并且正在编译(可扩展应用程序标记语言 (XAML) 通过 Page 生成操作包括在项目中)的任何元素的属性,也可以声明为已编译应用程序的应用程序定义中的 Application 根的属性。在页面根元素或应用程序根元素之外的任何元素上以及在未编译的可扩展应用程序标记语言 (XAML) 文件的任何环境下声明 x:Class 都会导致编译时错误。

用作 x:Class 的类不能是嵌套类。

完全可以在没有任何代码隐藏的情况下拥有 XAML 页,从这个角度而言,x:Class 是可选的,但是,如果页面声明了事件处理属性值,或者实例化其定义类在代码隐藏类中的自定义元素,那么将最终需要为代码隐藏提供对适当类的 x:Class 引用(或 x:Subclass)。 

x:Class 属性的值必须是一个指定类的完全限定名的字符串。对于简单的应用程序,只要命名空间信息与代码隐藏的构建方式相同(定义从类级别开始),就可以省略 CLR 命名空间信息。页面或应用程序定义的代码隐藏文件必须在代码文件内,而该代码文件应作为产生已编译应用程序的项目的一部分而包括在该项目中。必须遵循 CLR 类的命名规则;有关详细信息,请参见 Type Definitions(类型定义)。默认情况下,代码隐藏类必须是 public 的,但也可以通过使用 x:ClassModifier 属性定义为另一访问级别。

请注意,x:Class 属性值的此含义是 WPF XAML 实现所特有的。WPF 外部的其他 XAML 实现可能不使用托管代码,因此可能使用不同的类解析公式。

请参见

概念

XAML 和自定义类

代码隐藏和 XAML

参考

x:Subclass 属性

x:ClassModifier 属性