ControlTemplate.TargetType 属性

定义

获取或设置应用的类型 ControlTemplate

适用于 UWP 的等效 WinUI 2 API:Windows 应用 SDK中 WinUI 的 Microsoft.UI.Xaml.Controls.ControlTemplate.TargetType (,请参阅Windows 应用 SDK命名空间) 。

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"/>

属性值

TypeName Type

应用的类型 ControlTemplate 。 此值通常在 XAML 中设置,而不是代码。 请参阅“备注”。

注解

The typical way to specify a TargetType value is through a XAML attribute on the ControlTemplate. 在 XAML 中设置时,TargetType 的含义和你提供的值将采用 XAML 中类型表示方式的一些方面。 具体而言,将给定类型称为 XAML 元素所需的任何前缀也应作为 TargetType 值字符串的值包含在内。 例如,如果模板旨在以特定标记范围中已映射的前缀“local”开头的自定义类型为目标,则 TargetType 值应包含同一前缀。 此行为由 Windows 运行时 XAML 分析器中的内置转换行为启用。

在大多数情况下,你将为ControlTemplate属性所在的SetterTemplate位置ControlTemplate设置 TargetType。 这又在为控件定义的隐式 Style 中。 ControlTemplate.TargetType 值和 Style.TargetType 包含 Style 的值应始终为相同的类型引用,引用同一隐式命名控件。 否则控件模板可能不起作用。

有关如何编写控件模板的详细信息,请参阅 快速入门:控件模板

备注

如果以前为Windows Presentation Foundation (WPF) 编程了 XAML,则可能使用了 x:Type 标记扩展来填充采用 System.Type 的任何 XAML 值。 Windows 运行时 XAML 分析器不支持 x:Type。 相反,应在不使用任何标记扩展的情况下按名称引用类型,并且任何必要的 XAML 到后退类型转换已由上一段中所述的内置转换行为处理。

在代码中使用 TargetType

在代码中设置 TargetType 并不常见。 XAML 样式/模板系统旨在通过将 XAML 加载为资源并让控件模板的所有方面事先准备就绪来使用。 在运行时,在运行时之前,应该很少知道有关控件和模板的信息,其中需要在代码中创建或引用的 TargetType 上 ControlTemplate 设置 TargetType。

在代码中获取 TargetType 也并不常见,但可以仔细检查从 XAML 加载到的控件目标是否 ControlTemplate 与从运行时树获取的给定控件目标兼容。

提示

如果使用 Microsoft .NET 语言 (C# 或 Microsoft Visual Basic) 编程,则TypeName类型项目为 System.Type。 使用 C# 进行编程时,通常使用 typeof 运算符基于类型名称获取对类型名称作为字符串的 System.Type 的引用。 在 Microsoft Visual Basic中,使用 GetType

适用于

另请参阅