ControlTemplate.TargetType Proprietà

Definizione

Ottiene o imposta il tipo a cui è applicato 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"/>

Valore della proprietà

Tipo a cui viene applicato ControlTemplate . Questo valore viene in genere impostato in XAML, non nel codice. Vedere la sezione Osservazioni.

Commenti

Il modo tipico per specificare un valore TargetType consiste nell'usare un attributo XAML in ControlTemplate. Se impostato in XAML, il significato di TargetType e i valori forniti prendono in considerazione alcuni aspetti del modo in cui i tipi vengono rappresentati in XAML. In particolare, tutti i prefissi che sarebbero necessari per fare riferimento a un determinato tipo come elemento XAML devono essere inclusi anche come valore della stringa del valore TargetType. Ad esempio, se un modello è destinato a un tipo personalizzato che deve essere preceduto dal prefisso già mappato "local" in un ambito di markup specifico, il valore TargetType deve includere lo stesso prefisso. Questo comportamento è abilitato dal comportamento di conversione predefinito nel parser XAML Windows Runtime.

Nella maggior parte dei casi, si imposta TargetType per un Oggetto ControlTemplate in cui controlTemplate si trova all'interno di un setter per la proprietà Template . Questo a sua volta si trova all'interno dello stile implicito che si sta definendo per un controllo. Il valore ControlTemplate.TargetType e il valore Style.TargetType dell'oggetto Style contenitore devono essere sempre lo stesso riferimento al tipo, facendo riferimento allo stesso controllo denominato in modo implicito. In caso contrario, il modello di controllo potrebbe non funzionare.

Per altre info su come scrivere un modello di controllo, vedi Modelli di controllo XAML.

Note

Se in precedenza hai programmato XAML per Windows Presentation Foundation (macchine virtuali Windows), potresti aver usato un'estensione di markup x:Type per compilare tutti i valori XAML che accettano system.type. Il parser XAML Windows Runtime non supporta x:Type. Devi invece fare riferimento al tipo in base al nome senza usare alcuna estensione di markup e qualsiasi conversione del tipo xaml-to-backing necessaria è già gestita dal comportamento di conversione predefinito descritto nel paragrafo precedente.

Uso di TargetType nel codice

L'impostazione di TargetType nel codice non è comune. Il sistema di stile/modello XAML è progettato per essere usato caricando XAML come risorsa e avendo tutti gli aspetti di un modello di controllo essere pronti in anticipo. Esistono pochissimi scenari in cui non si conoscono informazioni sui controlli e sui modelli fino al runtime, in cui è necessario impostare targetType in un oggetto ControlTemplate creato o a cui si fa riferimento nel codice.

Anche ottenere un TargetType nel codice è insolito, ma è possibile eseguire questa operazione per verificare che un ControlTemplate caricato da XAML sia compatibile con una destinazione di controllo specificata ottenuta dall'albero di runtime.

Tip

Se si esegue la programmazione usando un linguaggio di Microsoft .NET (C#), il tipo TypeName proietta come System.Type. Quando si esegue la programmazione con C#, in genere si usa l'operatore typeof per ottenere riferimenti al tipo System.Type di un tipo basato su un nome di tipo come stringa.

Se usi C++/WinRT puoi usare la winrt::xaml_typename<T>() funzione helper per creare un TypeName oggetto. Per altri dettagli, vedere modello di funzione winrt::xaml_typename e un esempio di codice.

Si applica a

Vedi anche