Расширение разметки 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.
См. также
Основные понятия
Стилизация и использование шаблонов