Share via

ControlTemplate.TargetType Property


Gets or sets the type for which this ControlTemplate is intended.

 property Type ^ TargetType { Type ^ get(); void set(Type ^ value); };
public Type TargetType { get; set; }
member this.TargetType : Type with get, set
Public Property TargetType As Type

Property Value

The default value is null.



The TargetType property must not be null if the definition of the template has a ContentPresenter.

The specified types are not valid. The TargetType of a ControlTemplate must be or inherit from a Control, a Page, or a PageFunctionBase.


The following example demonstrates the use of this property:

<Style x:Key="{x:Type Label}"
  <Setter Property="HorizontalContentAlignment"
          Value="Left" />
  <Setter Property="VerticalContentAlignment"
          Value="Top" />
  <Setter Property="Template">
      <ControlTemplate TargetType="Label">
          <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                            VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                            RecognizesAccessKey="True" />
          <Trigger Property="IsEnabled"
            <Setter Property="Foreground">
                <SolidColorBrush Color="{DynamicResource DisabledForegroundColor}" />

The above example uses the following resource:

For the complete sample, see Styling with ControlTemplates Sample.


If you have a standalone ControlTemplate in the resources section with the TargetType property set to a type, the ControlTemplate does not get applied to that type automatically. Instead, you need to specify an x:Key and apply the template explicitly.

Also note that the TargetType property is required on a ControlTemplate if the template definition contains a ContentPresenter.

XAML Attribute Usage

<object  TargetType="typeName"/>

XAML Values

typeName The type name of the class. To refer to the Type name of the class, use the Markup Extensions and WPF XAML.

Applies to