ControlTemplate.TargetType Proprietà

Definizione

Ottiene o imposta il tipo a cui viene 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, eventuali 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 particolare ambito di markup, 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 Guida introduttiva: Modelli di controllo.

Nota

Se xaml è stato programmato in precedenza per Windows Presentation Foundation (WPF), è possibile che sia stata usata 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. È invece consigliabile fare riferimento al tipo in base al nome senza usare alcuna estensione di markup e qualsiasi conversione del tipo da XAML a supporto 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. Dovrebbero esserci pochissimi scenari in cui non si conoscono informazioni sui controlli e sui modelli fino al runtime, in cui è necessario impostare targetType in un controlTemplate creato o a cui si fa riferimento nel codice.

Ottenere un TargetType nel codice è anche 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.

Suggerimento

Se si esegue la programmazione usando un linguaggio Microsoft .NET (C# o Microsoft Visual Basic), i progetti di tipo TypeName 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. In Microsoft Visual Basic usare GetType.

Si applica a

Vedi anche