Compartilhar via


ControlTemplate.TargetType Propriedade

Definição

Obtém ou define o tipo ao qual o ControlTemplate é aplicado.

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 da propriedade

O tipo ao qual ControlTemplate é aplicado. Esse valor geralmente é definido em XAML, não em código. Consulte Observações.

Comentários

A maneira típica de especificar um valor TargetType é por meio de um atributo XAML no ControlTemplate. Quando definido em XAML, o significado de TargetType e os valores fornecidos assumem alguns aspectos de como os tipos são representados no XAML. Em particular, todos os prefixos necessários para se referir a um determinado tipo como um elemento XAML também devem ser incluídos como o valor da cadeia de caracteres de valor TargetType. Por exemplo, se um modelo for destinado a um tipo personalizado que deve ser precedido pelo prefixo já mapeado "local" em um escopo de marcação específico, o valor TargetType deverá incluir esse mesmo prefixo. Esse comportamento é habilitado pelo comportamento de conversão interno no analisador XAML Windows Runtime.

Na maioria dos casos, você definirá TargetType para um ControlTemplate em que ControlTemplate está dentro de um Setter para a propriedade Template . Isso, por sua vez, está dentro do Estilo implícito que você está definindo para um controle. O valor ControlTemplate.TargetType e o valor Style.TargetType do Estilo que contém sempre devem ser a mesma referência de tipo, referindo-se ao mesmo controle implicitamente nomeado. Caso contrário, o modelo de controle poderá não funcionar.

Para obter mais informações sobre como escrever um modelo de controle, consulte Início Rápido: Modelos de controle.

Observação

Se você já programou o XAML para Windows Presentation Foundation (WPF), talvez tenha usado uma extensão de marcação x:Type para preencher quaisquer valores XAML que levem um System.Type. O analisador XAML Windows Runtime não dá suporte a x:Type. Em vez disso, você deve se referir ao tipo por nome sem usar nenhuma extensão de marcação e qualquer conversão de tipo XAML para backup necessário já é tratada pelo comportamento de conversão interno descrito no parágrafo anterior.

Usando TargetType no código

Definir TargetType no código é incomum. O sistema de modelo/estilo XAML destina-se a ser usado carregando XAML como um recurso e fazendo com que todos os aspectos de um modelo de controle estejam prontos com antecedência. Deve haver poucos cenários em que você não saiba informações sobre controles e modelos até o runtime, em que há a necessidade de definir um TargetType em um ControlTemplate criado ou referenciado no código.

Obter um TargetType no código também é incomum, mas você pode fazer isso para marcar que um ControlTemplate que você carregou do XAML seja compatível com um determinado destino de controle que você obteve da árvore de runtime.

Dica

Se você estiver programando usando uma linguagem Microsoft .NET (C# ou Microsoft Visual Basic), o tipo TypeName projeta como System.Type. Ao programar usando C#, você geralmente usa o operador typeof para obter referências ao System.Type de um tipo com base em um nome de tipo como uma cadeia de caracteres. No Microsoft Visual Basic, use GetType.

Aplica-se a

Confira também