Freigeben über


ControlTemplate.TargetType Eigenschaft

Definition

Ruft den Typ ab, auf den die ControlTemplate angewendet wird, oder legt diesen fest.

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"/>

Eigenschaftswert

Der Typ, auf den die ControlTemplate angewendet wird. Dieser Wert wird normalerweise in XAML und nicht in Code festgelegt. Siehe Hinweise.

Hinweise

Die typische Möglichkeit zum Angeben eines TargetType-Werts ist ein XAML-Attribut für die ControlTemplate. Wenn sie in XAML festgelegt sind, nehmen die Bedeutung von TargetType und die von Ihnen angegebenen Werte einige Aspekte der Darstellung von Typen in XAML auf. Insbesondere sollten alle Präfixe, die erforderlich wären, um auf einen bestimmten Typ als XAML-Element zu verweisen, auch als Wert der TargetType-Wertzeichenfolge eingeschlossen werden. Wenn eine Vorlage beispielsweise für einen benutzerdefinierten Typ vorgesehen ist, dem das bereits zugeordnete Präfix "local" in einem bestimmten Markupbereich vorangestellt werden muss, sollte der TargetType-Wert dasselbe Präfix enthalten. Dieses Verhalten wird durch integriertes Konvertierungsverhalten im Windows-Runtime XAML-Parser aktiviert.

In den meisten Fällen legen Sie targetType für eine ControlTemplate fest, wobei sich diese ControlTemplate in einem Setter für die Template-Eigenschaft befindet. Dies liegt wiederum innerhalb des impliziten Stils , den Sie für ein Steuerelement definieren. Der ControlTemplate.TargetType-Wert und der Style.TargetType-Wert des enthaltenen Style sollten immer derselbe Typverweis sein, der auf dasselbe implizit benannte Steuerelement verweist. Andernfalls funktioniert die Steuerelementvorlage möglicherweise nicht.

Weitere Informationen zum Schreiben einer Steuerelementvorlage finden Sie unter XAML-Steuerelementvorlagen.

Hinweis

Wenn Sie zuvor XAML für Windows Presentation Foundation (WPF) programmiert haben, haben Sie möglicherweise eine x:Type-Markuperweiterung verwendet, um alle XAML-Werte auszufüllen, die eine System.Type-Eigenschaft annehmen. Der Windows-Runtime XAML-Parser unterstützt x:Type nicht. Stattdessen sollten Sie auf den Typ anhand des Namens verweisen, ohne eine Markuperweiterung zu verwenden, und jede erforderliche XAML-in-Backing-Typkonvertierung wird bereits durch das im vorherigen Absatz beschriebene integrierte Konvertierungsverhalten behandelt.

Verwenden von TargetType im Code

Das Festlegen von TargetType im Code ist ungewöhnlich. Das XAML-Stil-/Vorlagensystem ist für die Verwendung vorgesehen, indem XAML als Ressource geladen wird und alle Aspekte einer Steuerelementvorlage vorab bereit sind. Es sollte sehr wenige Szenarien geben, in denen Sie bis zur Laufzeit keine Informationen zu Steuerelementen und Vorlagen kennen würden, in denen ein TargetType für eine ControlTemplate festgelegt werden muss, die im Code erstellt oder referenziert wird.

Das Abrufen eines TargetType-Objekts im Code ist ebenfalls ungewöhnlich, aber Sie können dies tun, um zu überprüfen, ob eine ControlTemplate , die Sie aus XAML geladen haben, mit einem bestimmten Steuerelementziel kompatibel ist, das Sie aus der Laufzeitstruktur erhalten haben.

Tipp

Wenn Sie mit einer Microsoft .NET-Sprache (C# oder Microsoft Visual Basic) programmieren, wird der TypeName-Typ als System.Type ausgeführt. Beim Programmieren mit C# verwenden Sie normalerweise den typeof-Operator , um Verweise auf den System.Type eines Typs basierend auf einem Typnamen als Zeichenfolge abzurufen. Verwenden Sie in Microsoft Visual Basic GetType.

Gilt für:

Weitere Informationen