Директива 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 и резервного копирования кода времени выполнения. Дополнительные сведения о более общих интерпретациях
На определенном уровне архитектуры значение 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 документируется отдельно. Дополнительные сведения см. в
См. также
- директива x:Subclass
- XAML и пользовательские классы для WPF
- директива x:ClassModifier
- Типы , перенесенные из WPF в System.Xaml
.NET Desktop feedback