x:Type-Markuperweiterung
Aktualisiert: November 2007
Gibt das Type-Objekt für den bereitgestellten Typ an.
Verwendung von XAML-Attributen
<object property="{x:Type prefix:typeNameValue}" .../>
Verwendung von XAML-Objektelementen
<object>
<object.property>
<x:Type TypeName="prefix:typeNameValue"/>
</object.property>
</object>
XAML-Werte
prefix |
Optional. Ein Präfix, das einen nicht standardmäßigen XML-Namespace zuordnet. Es ist häufig nicht notwendig, ein Präfix anzugeben. Weitere Informationen finden Sie unter den Hinweisen. |
typeNameValue |
Erforderlich. Ein Typname, der in den aktuellen standardmäßigen XML-Namespace aufgelöst werden kann, oder das angegebene zugeordnete Präfix, wenn prefix angegeben ist. |
Hinweise
x:Type wird verwendet, um den Attributwert für eine Eigenschaft anzugeben, die Type übernimmt. Viele Eigenschaften, die Type als Wert übernehmen, können den Namen des Typs jedoch direkt akzeptieren (den Zeichenfolgenwert Name des Typs). Details zu den einzelnen Eigenschaften finden Sie in der Dokumentation. x:Type ist im Wesentlichen die Entsprechung einer Markuperweiterung für einen Operator typeof() in C# oder den Operator GetType in Microsoft Visual Basic .NET.
Sie definieren den standardmäßigen XML-Namespace für eine bestimmte XAML-Seite als Attribut für das Stammelement. Im Allgemeinen wird als standardmäßiger XML-Namespace für die Windows Presentation Foundation (WPF)-Programmierung der WPF-Namespace verwendet. Der Bezeichner für diesen Namespace ist https://schemas.microsoft.com/winfx/2006/xaml/presentation. Die große Mehrheit von Typen, die für allgemeine WPF-Anwendungsprogrammierung bestimmt sind, liegt innerhalb dieses Namespace. Deshalb müssen Sie im Allgemeinen kein Präfix zuordnen, um bei der Verwendung von x:Type einen Typ abzurufen. Möglicherweise müssen Sie ein Präfix zuordnen, wenn Sie auf einen Typ einer benutzerdefinierten Assembly verweisen, oder bei Typen, die in einer WPF-Assembly vorliegen, sich aber in einem CLR-Namespace befinden, der nicht zugeordnet war, um Teil des WPF-Namespace aus dieser Assembly zu sein. Informationen über Präfixe, XML-Namespaces und das Zuordnen von CLR-Namespaces finden Sie unter XAML-Namespaces und Namespacezuordnung.
Die Attributsyntax ist die mit dieser Markuperweiterung am häufigsten verwendete Syntax. Das Zeichenfolgentoken, das auf die x:Type-Bezeichnerzeichenfolge folgt, wird als TypeName-Wert der zugrunde liegenden TypeExtension-Erweiterungsklasse zugeordnet. Der Wert dieses Attributs ist der Name des gewünschten Typs.
x:Type kann in der Objektelementsyntax verwendet werden. In diesem Fall muss der Wert der TypeName-Eigenschaft angegeben werden, damit die Erweiterung ordnungsgemäß initialisiert wird.
x:Type kann zudem in einer ausführlichen Attributverwendung genutzt werden, die die TypeName-Eigenschaft als Eigenschaft/Wert-Paar angibt:
<object property="{x:Type TypeName=typeNameValue}" .../>
Die ausführliche Verwendung ist häufig hilfreich, wenn für eine Erweiterung mehr als eine Eigenschaft festgelegt werden kann oder wenn bestimmte Eigenschaften optional sind. Da für x:Type nur eine (erforderliche) Eigenschaft festgelegt werden kann, ist diese ausführliche Verwendung unüblich.
In der WPF-XAML-Prozessorimplementierung wird die Handhabung dieser Markuperweiterung durch die TypeExtension-Klasse definiert.
x:Type ist eine Markuperweiterung. Markuperweiterungen werden in der Regel implementiert, wenn Attributwerte mit Escapezeichen versehen werden müssen, damit diese nicht als literale Werte oder als Handlernamen betrachtet werden, und diese Anforderung eher global und nicht nur durch den Einsatz von Typkonvertern für bestimmte Typen oder Eigenschaften erfüllt werden soll. Alle Markuperweiterungen in XAML verwenden die Zeichen { und } in der Attributsyntax. Dies ist die Konvention, anhand der ein XAML-Prozessor erkennt, dass das Attribut von einer Markuperweiterung verarbeitet werden muss. Weitere Informationen finden Sie unter Markuperweiterungen und XAML.
Siehe auch
Konzepte
Erstellen von Formaten und Vorlagen