ControlTemplate.TargetType Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 o ControlTemplate é aplicado. Esse valor geralmente é definido em XAML, não em código. Consulte Comentários.
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 que você fornece 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 "local" já mapeado em um escopo de marcação específico, o valor TargetType deverá incluir esse mesmo prefixo. Esse comportamento é habilitado pelo comportamento de conversão interna no analisador XAML Windows Runtime.
Na maioria dos casos, você definirá o 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 modelos de controle XAML.
Note
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ária já é tratada pelo comportamento de conversão interno descrito no parágrafo anterior.
Usando TargetType no código
A configuração de TargetType no código é incomum. O sistema de modelo/estilo XAML destina-se a ser usado carregando XAML como um recurso e tendo todos os aspectos de um modelo de controle prontos antes. Deve haver pouquíssimos cenários em que você não saberia 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 verificar novamente se um ControlTemplate que você carregou do XAML é compatível com um determinado destino de controle que você obteve da árvore de runtime.
Tip
Se você estiver programando usando uma linguagem Microsoft .NET (C#), 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.
Se você estiver usando C++/WinRT , poderá usar a winrt::xaml_typename<T>() função auxiliar para criar um TypeName objeto. Consulte o modelo de função winrt::xaml_typename para obter mais detalhes e um exemplo de código.