ControlTemplate.TargetType Свойство

Определение

Возвращает или задает тип, к которому применяется ControlTemplate .

public:
 property TypeName TargetType { TypeName get(); void set(TypeName value); };
TypeName TargetType();

void TargetType(TypeName value);
public System.Type TargetType { get; set; }
var typeName = controlTemplate.targetType;
controlTemplate.targetType = typeName;
Public Property TargetType As Type
<ControlTemplate TargetType="typeName"/>

Значение свойства

Тип, к которому применяется ControlTemplate . Это значение обычно устанавливается в XAML, а не в коде. См. заметки.

Комментарии

Типичный способ указать значение TargetType — с помощью атрибута XAML в ControlTemplate. Если задано в XAML, значение TargetType и предоставленные значения принимают на себя некоторые аспекты представления типов в XAML. В частности, любые префиксы, необходимые для ссылки на данный тип в качестве элемента XAML, также должны быть включены в качестве значения строки значения TargetType. Например, если шаблон предназначен для настраиваемого типа, которому должен предшествовать уже сопоставленный префикс "local" в определенном область разметки, то значение TargetType должно содержать тот же префикс. Это поведение поддерживается встроенным поведением преобразования в средстве синтаксического анализа XAML среда выполнения Windows.

В большинстве случаев вы устанавливаете TargetType для элемента ControlTemplate , где этот элемент ControlTemplate находится в методе задания для свойства Template . Это, в свою очередь, находится в неявном стиле , определяемом для элемента управления. Значения ControlTemplate.TargetType и Style.TargetType содержащего style объекта всегда должны быть одной и той же ссылкой на тип, ссылаясь на один и тот же элемент управления с неявным именем. В противном случае шаблон элемента управления может не работать.

Дополнительные сведения о написании шаблона элемента управления см. в разделе Краткое руководство. Шаблоны элементов управления.

Примечание

Если вы ранее запрограммировали XAML для Windows Presentation Foundation (WPF), возможно, вы использовали расширение разметки x:Type для заполнения любых значений XAML, которые принимают System.Type. Средство синтаксического анализа XAML среда выполнения Windows не поддерживает x:Type. Вместо этого следует ссылаться на тип по имени без использования расширения разметки, а любое необходимое преобразование типа из XAML в резервный уже обрабатывается встроенным поведением преобразования, описанным в предыдущем абзаце.

Использование TargetType в коде

Установка Параметра TargetType в коде встречается редко. Система стилей и шаблонов XAML предназначена для использования путем загрузки XAML в качестве ресурса и предварительной подготовки всех аспектов шаблона элемента управления. Существует очень мало сценариев, в которых вы не будете знать сведения об элементах управления и шаблонах до выполнения, где необходимо задать TargetType для элемента ControlTemplate , созданного или указанного в коде.

Получение TargetType в коде также редко, но это можно сделать, чтобы дважды проверка, что шаблон ControlTemplate, загруженный из XAML, совместим с заданным целевым объектом элемента управления, полученным из дерева среды выполнения.

Совет

При программировании на языке Microsoft .NET (C# или Microsoft Visual Basic) тип TypeName проектируются как System.Type. При программировании на C# оператор typeof обычно используется для получения ссылок на System.Type типа на основе имени типа в виде строки. В Microsoft Visual Basic используйте GetType.

Применяется к

См. также раздел