ControlTemplate.TargetType Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 in der Regel in XAML und nicht in Code festgelegt. Siehe Anmerkungen.
Hinweise
Die typische Methode zum Angeben eines TargetType-Werts besteht aus einem XAML-Attribut in der ControlTemplate. Wenn sie in XAML festgelegt sind, übernehmen die Bedeutung von TargetType und die von Ihnen bereitgestellten Werte einige Aspekte der Darstellung von Typen in XAML. 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 einbezogen werden. Wenn beispielsweise eine Vorlage 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 den TargetType für eine ControlTemplate fest, in dem sich diese ControlTemplate in einem Setter für die Template-Eigenschaft befindet. Dies wiederum befindet sich innerhalb des impliziten Stils , den Sie für ein Steuerelement definieren. Der Wert "ControlTemplate.TargetType" und der Wert "Style.TargetType " der enthaltenden Formatvorlage sollten immer denselben Typverweis aufweisen, 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 einen System.Type verwenden. Der Windows-Runtime XAML-Parser unterstützt x:Type nicht. Stattdessen sollten Sie auf den Typ nach Name verweisen, ohne eine Markuperweiterung zu verwenden, und alle erforderlichen XAML-zu-Sichern-Typkonvertierungen werden bereits vom integrierten Konvertierungsverhalten behandelt, das im vorherigen Absatz beschrieben wird.
Verwenden von TargetType im Code
Das Festlegen von TargetType im Code ist ungewöhnlich. Das XAML-Stil-/Vorlagensystem soll verwendet werden, indem XAML als Ressource geladen wird und alle Aspekte einer Steuerelementvorlage vorab vorbereitet werden. Es sollten sehr wenige Szenarien vorhanden sein, in denen Sie bis zur Laufzeit keine Informationen zu Steuerelementen und Vorlagen kennen würden, in denen ein TargetType für ein in Code erstelltes oder im Code referenziertes ControlTemplate-Objekt festgelegt werden muss.
Das Abrufen eines TargetType im Code ist ebenfalls ungewöhnlich, aber Sie können dies tun, um zu überprüfen, ob eine Von Ihnen aus XAML geladene ControlTemplate mit einem bestimmten Steuerelementziel kompatibel ist, das Sie aus der Laufzeitstruktur abgerufen haben.
Tip
Wenn Sie eine Microsoft .NET Sprache (C#) programmieren, wird der TypeName-Typ als "System.Type" projiziert. Bei der Programmierung mit C# verwenden Sie in der Regel den Typeof-Operator , um Verweise auf den System.Type eines Typs basierend auf einem Typnamen als Zeichenfolge abzurufen.
Wenn Sie C++/WinRT verwenden, können Sie mithilfe der winrt::xaml_typename<T>() Hilfsfunktion ein TypeName Objekt erstellen. Weitere Informationen und ein Codebeispiel finden Sie unter winrt::xaml_typename Funktionsvorlage .