ControlTemplate.TargetType Propiedad

Definición

Obtiene o establece el tipo al que se aplica 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 se establece normalmente 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 proporcionas toman parte de 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 elemento XAML también deben incluirse como el valor de la cadena de valor TargetType. Por ejemplo, si una plantilla está pensada para dirigirse a 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, se 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, consulta Plantillas de control XAML.

Note

Si has programado previamente 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 un 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 se controla mediante 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 común. El sistema de estilos y plantillas XAML está pensado para usarse cargando XAML como un 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 un ControlTemplate creado o al que se hace referencia en el código.

Obtener un TargetType en el código también es poco común, pero puede hacer esto para comprobar que un ControlTemplate que ha cargado desde XAML es compatible con un destino de control determinado que obtuvo del árbol en tiempo de ejecución.

Tip

Si va a programar con un lenguaje Microsoft .NET (C#), el tipo TypeName 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.

Si usa C++/WinRT , puede usar la winrt::xaml_typename<T>() función auxiliar para crear un TypeName objeto. Consulte winrt::xaml_typename plantilla de función para obtener más detalles y un ejemplo de código.

Se aplica a

Consulte también