ControlTemplate.TargetType Propiedad

Definición

Obtiene o establece el tipo al que se aplica la clase 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"/>

Valor de propiedad

Tipo al que se aplica controlTemplate . Este valor normalmente se establece en XAML, no en código. Vea la sección Comentarios.

Comentarios

La manera típica de especificar un valor TargetType es a través de un atributo XAML en controlTemplate. Cuando se establece en XAML, el significado de TargetType y los valores que proporciona se toman en cuenta algunos aspectos de cómo se representan los tipos en XAML. En concreto, los prefijos que serían necesarios para hacer referencia a un tipo determinado como un elemento XAML también deben incluirse como el valor de la cadena de valor TargetType. Por ejemplo, si una plantilla está pensada para tener como destino un tipo personalizado que debe ir precedido por el prefijo ya asignado "local" en un ámbito de marcado determinado, el valor TargetType debe incluir ese mismo prefijo. Este comportamiento se habilita mediante el comportamiento de conversión integrado en el analizador XAML de Windows Runtime.

En la mayoría de los casos, establecerá targetType para un controlTemplate donde controlTemplate se encuentra dentro de un establecedor para la propiedad Template . Esto a su vez está dentro del estilo implícito que se va a definir para un control. El valor ControlTemplate.TargetType y el valor Style.TargetType del style contenedor siempre deben ser la misma referencia de tipo, haciendo referencia al mismo control con nombre implícito. De lo contrario, es posible que la plantilla de control no funcione.

Para obtener más información sobre cómo escribir una plantilla de control, consulte Inicio rápido: Plantillas de control.

Nota

Si previamente programaste XAML para Windows Presentation Foundation (WPF), es posible que hayas usado una extensión de marcado x:Type para rellenar los valores XAML que toman system.Type. El analizador XAML de Windows Runtime no admite x:Type. En su lugar, debes hacer referencia al tipo por nombre sin usar ninguna extensión de marcado, y la conversión de tipos xaml a respaldo necesaria ya está administrada por el comportamiento de conversión integrado descrito en el párrafo anterior.

Uso de TargetType en el código

Establecer TargetType en el código es poco frecuente. El sistema de plantillas y estilo XAML está pensado para usarse cargando XAML como recurso y haciendo que todos los aspectos de una plantilla de control estén listos de antemano. Debe haber muy pocos escenarios en los que no conozca información sobre los controles y las plantillas hasta el tiempo de ejecución, donde es necesario establecer un TargetType en una clase ControlTemplate creada o a la que se hace referencia en el código.

Obtener un TargetType en el código también es poco habitual, pero es posible que hagas esto para comprobar que una clase ControlTemplate que has cargado desde XAML es compatible con un destino de control determinado que obtuviste del árbol en tiempo de ejecución.

Sugerencia

Si va a programar con un lenguaje Microsoft .NET (C# o Microsoft Visual Basic), el tipo TypeName se proyecta como System.Type. Al programar con C#, normalmente se usa el operador typeof para obtener referencias al System.Type de un tipo basado en un nombre de tipo como una cadena. En Microsoft Visual Basic, use GetType.

Se aplica a

Consulte también