Поделиться через


Директива x:Class

Настраивает компиляцию разметки XAML для объединения частичных классов между разметкой и кодом. Частичный класс кода определяется в отдельном файле кода на языке CLS, в то время как частичный класс разметки обычно создается при компиляции XAML.

Использование атрибута XAML

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

Значения XAML

Ценность Описание
namespace Необязательный. Указывает пространство имен СРЕДЫ CLR, содержащее частичный класс, определенный classname. Если указан namespace, точка (.) отделяет namespace и classname. См. примечания.
classname Обязательно. Указывает имя среды CLR частичного класса, который подключает загруженный XAML и код для этого XAML.

Зависимости

x:Class можно указать только в корневом элементе рабочей среды XAML. x:Class недопустимо для любого объекта, имеющего родительский объект в рабочей среде XAML. Дополнительные сведения см. в разделе [MS-XAML] раздел 6.3.1.6.

Замечания

Значение namespace может содержать дополнительные точки для упорядочивания связанных пространств имен в иерархии имен, что является общим методом программирования .NET. Только последняя точка в строке значений x:Class интерпретируется для разделения namespace и classname. класс, используемый как x:Class, не может быть вложенным классом. Вложенные классы не допускаются, так как определение значения точек для строк x:Class неоднозначно, если разрешены вложенные классы.

В существующих моделях программирования, использующих x:Class, x:Class является необязательным в том смысле, что он является полностью допустимым для страницы XAML, которая не имеет кодовой части. Однако эта возможность взаимодействует с действиями сборки, реализованными платформами, используюющими XAML. x:Class возможности также влияют на роли, которые различные классификации указанного XAML-содержимого имеют в модели приложения и в соответствующих действиях сборки. Если XAML объявляет значения атрибутов обработки событий или создает экземпляры пользовательских элементов, где определяющие классы находятся в классе code-behind, необходимо указать ссылку на директиву x:Class (или x:Subclass) соответствующему классу для кода программной части.

Значение директивы x:Class должно быть строкой, указывающей полное имя класса, но без каких-либо сведений о сборке (эквивалентно Type.FullName). Для простых приложений можно опустить сведения о пространстве имен CLR, если код-заставка также структурирован таким образом (определение кода начинается на уровне класса).

Файл программной части для определения страницы или приложения должен находиться в файле кода, который входит в состав проекта, который создает скомпилированное приложение и включает компиляцию разметки. Необходимо следовать правилам имен для классов CLR. Дополнительные сведения см. в руководствах по проектированию платформы. По умолчанию класс code-behind должен быть public; однако его можно определить на другом уровне доступа с помощью директивы x:ClassModifier.

Эта интерпретация атрибута x:Class применяется только к реализации XAML на основе СРЕДЫ CLR, в частности к службам XAML .NET. Другие реализации XAML, которые не основаны на среде CLR и которые не используют службы XAML .NET, могут использовать другую формулу разрешения для подключения разметки XAML и резервного копирования кода времени выполнения. Дополнительные сведения о более общих интерпретациях см. в[MS-XAML].

На определенном уровне архитектуры значение x:Class не определено в службах XAML .NET. Это связано с тем, что службы XAML .NET не указывают модель программирования, с помощью которой подключены разметка XAML и код резервной копии. Дополнительное использование директивы x:Class может быть реализовано определенными платформами, использующими модели программирования или модели приложений для определения способа подключения разметки XAML и программной части среды CLR. Каждая платформа может иметь собственные действия сборки, которые обеспечивают некоторые действия или определенные компоненты, которые должны быть включены в среду сборки. В рамках платформы действия сборки также могут отличаться в зависимости от конкретного языка СРЕДЫ CLR, используемого для программной части.

x:Class в модели программирования WPF

В приложениях WPF и модели приложения WPF x:Class можно объявить в качестве атрибута для любого элемента, который является корнем XAML-файла и компилируется (где XAML входит в проект приложения WPF с действием сборки Page) или для корневого Application в определении приложения скомпилированного приложения WPF. Объявление x:Class в элементе, отличном от корневого каталога страницы или корневого каталога приложения, или файла XAML WPF, который не компилируется, вызывает ошибку во время компиляции в компиляторе XAML .NET Framework 3.0 и .NET Framework 3.5 WPF XAML. Дополнительные сведения о других аспектах обработки x:Class в WPF см. в Code-Behind и XAML вWPF.

x:Class для Windows Workflow Foundation

Для Windows Workflow Foundation x:Class присваивает класс настраиваемого действия, состоящего полностью в XAML, или называет частичный класс страницы XAML для конструктора действий с кодом программной части.

Заметки об использовании Silverlight

x:Class для Silverlight документируется отдельно. Дополнительные сведения см. впространства имен XAML (x:).

См. также