Расширение разметки x:Type

Обновлен: Ноябрь 2007

Предоставляет объект Type для указанного типа.

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

<object property="{x:Type prefix:typeNameValue}" .../>

Использование элемента объекта XAML

<object>
  <object.property>
    <x:Type TypeName="prefix:typeNameValue"/>
  </object.property>
</object>

Значения XAML

prefix

Необязательный компонент. Префикс, который отображает пространство имен XML, не являющееся пространством имен по умолчанию. Указание префикса зачастую необязательно, см. примечания.

typeNameValue

Требуется. Имя типа, которое разрешается до текущего пространства имен XML по умолчанию или до указанного сопоставленного префикса, если предоставляется prefix.

Заметки

x:Type используется для указания значения атрибута свойства, которое принимает Type. В то же время, многие свойства, которые принимают Type в качестве значения, могут принять имя типа напрямую (строковое значение типа Name); ознакомьтесь с документацией по конкретным свойствам для дополнительной информации. x:Type является, по существу, расширением разметки, эквивалентным оператору typeof() в C# или оператору GetType в Microsoft Visual Basic .NET.

Следует определить пространство имен XML по умолчанию для любой заданной страницы XAML в качестве атрибута корневого элемента. Как правило, пространством имен XML, используемым для программирования Windows Presentation Foundation (WPF), является пространство имен WPF. Идентификатором для этого пространства имен является https://schemas.microsoft.com/WinFX/2006/XAML/Presentation. Большинство типов, предназначенных для общего программирования приложений WPF, находятся внутри этого пространства имен. Таким образом, сопоставлять префикс для получения типа при использовании x:Type, как правило, необязательно. Сопоставление префикса может потребоваться при ссылке на тип из пользовательской сборки, а также для типов, существующих в сборке WPF, но находящихся в пространстве имен CLR, которое не было сопоставлено как часть пространства имен WPF для соответствующей сборки. Дополнительные сведения о префиксах, пространствах имен XML и сопоставлении пространств имен CLR см. в разделе Пространства имен XAML и сопоставление пространств имен.

Синтаксис атрибута является наиболее распространенным синтаксисом, используемым с этим расширением разметки. Метка строки, указанная после идентификатора строки x:Type, присваивается как значение TypeName базового класса расширения TypeExtension. Значением этого атрибута является Name желаемого типа.

x:Type может использоваться в синтаксисе элемента объекта. В этом случае для правильной инициализации расширения требуется указать значение свойства TypeName.

x:Type может также использоваться для подробного определения атрибутов, при котором свойство TypeName указывается как пара "свойство = значение".

<object property="{x:Type TypeName=typeNameValue}" .../>

Подробное определение зачастую удобно использовать для расширений, которые имеют несколько устанавливаемых свойств, а также в том случае, если некоторые свойства являются необязательными. Так как x:Type имеет только одно устанавливаемое свойство, которое является обязательным, это использование не является типичным.

В реализации процессора XAML WPF обработка данного расширения разметки определяется классом TypeExtension.

x:Type является расширением разметки. Расширения разметки обычно реализуются, если требуется заменить значения атрибутов на нелитеральные значения или имена обработчиков и если требуется не только простая настройка преобразователей типов на работу с определенными типами или свойствами. Все расширения разметки в XAML используют символы { and } в синтаксисе их атрибутов, который является соглашением, по которому процессор XAML распознает, что расширение разметки должно обработать атрибут. Дополнительные сведения см. в разделе Расширения разметки и XAML.

См. также

Основные понятия

Стилизация и использование шаблонов

Общие сведения о XAML

Расширения разметки и XAML

Ссылки

Style