x:Class 属性

配置 XAML 编译,以在标记和后台代码之间联接分部类。 代码分部类在单独的代码文件中定义,标记分部类由代码生成在 XAML 编译期间创建。

XAML 属性用法

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

XAML 值

术语 Description
命名空间 可选。 指定包含由 classname 标识的分部类的命名空间。 如果指定 命名空间 ,则点 (.) 分隔 命名空间类名。 如果省略 命名空间 ,则假定 classname 没有命名空间。
类名 必填。 指定连接所加载 XAML 的分部类的名称,以及该 XAML 的代码隐藏。

注解

x:Class 可以被声明为任何元素的属性,前提是该元素是 XAML 文件/对象树的根元素,并且通过生成操作正在编译,或是在已编译应用程序的应用定义中的 Application 根元素。 在除根节点外的任何元素上声明x:Class,并且对于未使用Page生成操作进行编译的XAML文件,无论在任何情况下,都会导致编译时错误。

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

x:Class 特性的值必须是指定类的完全限定名称的字符串。 只要这就是代码隐藏的结构方式(类定义从类级别开始),就可以省略命名空间信息。 页面或应用程序定义的代码隐藏文件必须包含在项目一部分的代码文件中。 代码隐藏类必须是公共类。 代码隐藏类必须是局部类。

CLR 语言规则

尽管代码隐藏文件可以是C++文件,但某些约定仍遵循 CLR 语言形式,因此 XAML 语法没有区别。 具体而言,任何 x:Class 值的命名空间和类名组件之间的分隔符始终是一个点(“.”),即使与 XAML 关联的C++代码文件中命名空间和类名之间的分隔符为“::”。 如果在C++中声明嵌套命名空间,则在指定 x:Class 值的命名空间部分时,连续嵌套命名空间字符串之间的分隔符也应为“.”而不是“:”。