x:Type-Markuperweiterungx:Type Markup Extension

Stellt die CLR Type -Objekt, das die zugrunde liegende Typ für einen angegebenen XAML-Typ ist.Supplies the CLR Type object that is the underlying type for a specified XAML type.

Verwendung von XAML-AttributenXAML Attribute Usage

<object property="{x:Type prefix:typeNameValue}" .../>  

Verwendung von XAML-ObjektelementenXAML Object Element Usage

<x:Type TypeName="prefix:typeNameValue"/>  

XAML-WerteXAML Values

prefix Dies ist optional.Optional. Ein Präfix, das einen nicht standardmäßigen XAML-Namespace zugeordnet.A prefix that maps a non-default XAML namespace. Angeben eines Präfix ist häufig nicht erforderlich.Specifying a prefix is frequently not necessary. Siehe Hinweise.See Remarks.
typeNameValue Erforderlich.Required. Ein Typname, die auf den aktuellen Standard-XAML-Namespace aufgelöst werden kann; oder das angegebene Präfix Wenn prefix angegeben wird.A type name resolvable to the current default XAML namespace; or the specified mapped prefix if prefix is supplied.

HinweiseRemarks

Die x:Type Markuperweiterung hat eine ähnliche Funktion für die typeof() -Operator in c# oder der GetType Operator in Microsoft Visual Basic.The x:Type markup extension has a similar function to the typeof() operator in C# or the GetType operator in Microsoft Visual Basic.

Die x:Type Markuperweiterung gibt das Konvertierungsverhalten für Eigenschaften, die den Typ aus Zeichenfolgen Type.The x:Type markup extension supplies a from-string conversion behavior for properties that take the type Type. Die Eingabe ist ein XAML-Typ.The input is a XAML type. Die Beziehung zwischen der Eingabe-XAML-Typ und die Ausgabe CLR Type ist, die die Ausgabe Type ist die UnderlyingType der Eingabe XamlType, nach der Suche der erforderlichen XamlType basierend auf XAML-Schemakontext und der IXamlTypeResolverDienst, der den Kontext bereitstellt.The relationship between the input XAML type and the output CLR Type is that the output Type is the UnderlyingType of the input XamlType, after looking up the necessary XamlType based on XAML schema context and the IXamlTypeResolver service the context provides.

In .NET Framework-XAML-Dienste, wird die Handhabung dieser Markuperweiterung durch definiert die TypeExtension Klasse.In .NET Framework XAML Services, the handling for this markup extension is defined by the TypeExtension class.

In bestimmten frameworkimplementierungen, einige Eigenschaften, die nutzen Type als Wert den Namen des Typs direkt angenommen werden kann (der Zeichenfolgenwert des Typs Name).In specific framework implementations, some properties that take Type as a value can accept the name of the type directly (the string value of the type Name). Implementieren dieses Verhalten ist jedoch ein kompliziertes Szenario.However, implementing this behavior is a complex scenario. Beispiele finden Sie im folgenden Abschnitt "Hinweise zur WPF-Verwendung".For examples, see the "WPF Usage Notes" section that follows.

Die Attributsyntax ist die mit dieser Markuperweiterung am häufigsten verwendete Syntax.Attribute syntax is the most common syntax used with this markup extension. Das Zeichenfolgentoken, das auf die x:Type-Bezeichnerzeichenfolge folgt, wird als TypeName-Wert der zugrunde liegenden TypeExtension-Erweiterungsklasse zugeordnet.The string token provided after the x:Type identifier string is assigned as the TypeName value of the underlying TypeExtension extension class. Unter der standardmäßigen XAML-Schemakontext für .NET Framework XAML-Dienste, die auf CLR-Typen basieren, ist der Wert dieses Attributs die Name des gewünschten Typs, oder enthält, die Name vorangestellt wird ein Präfix für einen nicht standardmäßigen XAML-Namespace die Zuordnung.Under the default XAML schema context for .NET Framework XAML Services, which is based on CLR types, the value of this attribute is either the Name of the desired type, or contains that Name preceded by a prefix for a non-default XAML namespace mapping.

Die x:Type Markuperweiterung in Objektelementsyntax verwendet werden kann.The x:Type markup extension can be used in object element syntax. In diesem Fall geben Sie den Wert der TypeName Eigenschaft ist erforderlich, um die Erweiterung ordnungsgemäß initialisiert.In this case, specifying the value of the TypeName property is required to properly initialize the extension.

Die x:Type Markuperweiterung kann auch als ausführliche Attribut verwendet werden; diese Verwendung ist jedoch nicht typisch: <object property="{x:Type TypeName=typeNameValue}" .../>The x:Type markup extension can also be used as a verbose attribute; however this use is not typical: <object property="{x:Type TypeName=typeNameValue}" .../>

Hinweise zur WPF-VerwendungWPF Usage Notes

Standard-XAML-Namespace und TypzuordnungDefault XAML Namespace and Type Mapping

Der XAML-Standardnamespace für WPF-Programmierung enthält die XAML-Typen für die typische XAML-Szenarien benötigen Sie die meisten; aus diesem Grund können Sie häufig Präfixe vermeiden, wenn Sie Werte für XAML-Typen zu verweisen.The default XAML namespace for WPF programming contains most of the XAML types you need for typical XAML scenarios; therefore, you can often avoid prefixes when referencing XAML type values. Sie müssen möglicherweise ein Präfix zugeordnet wird, wenn Sie einen Typ verweist, aus einer benutzerdefinierten Assembly oder für Typen, die in einer WPF-Assembly vorhanden sein, aber aus einem CLR-Namespace, der nicht dem XAML-Standardnamespace zugeordnet werden.You might need to map a prefix if you are referencing a type from a custom assembly or for types that exist in a WPF assembly but are from a CLR namespace that was not mapped to the default XAML namespace. Weitere Informationen zum Zuordnen von CLR-Namespaces, XAML-Namespaces und Präfixe finden Sie unter XAML-Namespaces und Namespace-Zuordnung für WPF XAML.For more information about prefixes, XAML namespaces, and mapping CLR namespaces, see XAML Namespaces and Namespace Mapping for WPF XAML.

Geben Sie die Eigenschaften dieser Unterstützung Typename-als-ZeichenfolgeType Properties That Support Typename-as-String

WPF unterstützt Techniken, mit denen der Wert für einige Eigenschaften des Typs Type ohne eine x:Type Markuperweiterungsverwendung.WPF supports techniques that enable specifying the value of some properties of type Type without requiring an x:Type markup extension usage. Stattdessen können Sie den Wert als Zeichenfolge angeben, die den Typ bezeichnet.Instead, you can specify the value as a string that names the type. Beispiele dafür sind ControlTemplate.TargetType und Style.TargetType.Examples of this are ControlTemplate.TargetType and Style.TargetType. Für dieses Verhalten wird nicht über Markuperweiterungen oder Typkonverter unterstützt.Support for this behavior is not provided through either type converters or markup extensions. Stattdessen ist dies eine Verzögerung Verhalten über implementiert FrameworkElementFactory.Instead, this is a deferral behavior implemented through FrameworkElementFactory.

Silverlight-Unterstützung eine ähnliche Konvention.Silverlight supports a similar convention. In der Tat Silverlight unterstützt derzeit keine {x:Type} in der XAML-sprachunterstützung und akzeptiert keine {x:Type} Verwendung außerhalb von wenigen Situationen, die WPF-Silverlight-XAML-Migration unterstützt werden sollen.In fact, Silverlight does not currently support {x:Type} in its XAML language support, and does not accept {x:Type} usages outside of a few circumstances that are intended to support WPF-Silverlight XAML migration. Aus diesem Grund ist das Verhalten der Typename-als-Zeichenfolge in alle Silverlight-Eigenschaft "native"-Evaluierung integriert, in denen eine Type ist der Wert.Therefore, the typename-as-string behavior is built-in to all Silverlight native property evaluation where a Type is the value.

XAML 2009XAML 2009

XAML 2009 bietet zusätzliche Unterstützung für generische Typen und das Funktionsverhalten der ändert x:TypeArguments und x:Type zur Bereitstellung dieser Unterstützung.XAML 2009 provides additional support for generic types and modifies the feature behavior of x:TypeArguments and x:Type to provide this support.

  • x:TypeArguments und das zugeordnete Objekt-Element für eine generische Objektinstanziierung kann auf andere Elemente als Stamm.x:TypeArguments and the associated object element for a generic object instantiation can be on elements other than the root. Weitere Informationen finden Sie im Abschnitt "XAML 2009" X: TypeArguments Directive.For more information, see the "XAML 2009" section of x:TypeArguments Directive.

  • XAML 2009 unterstützt eine Syntax zum Angeben eines generischen Typs Einschränkung im Markup.XAML 2009 supports a syntax for specifying a generic type's constraint in markup. Dies kann verwendet werden, indem x:TypeArguments, x:Type, oder indem die beiden Funktionen sollten in Kombination.This can be used by x:TypeArguments, by x:Type, or by the two features in combination.

  • WPF XAML-Implementierung, bei der Verarbeitung von XAML 2009 für Load auch diese Funktion die implizite Typkonvertierungsverhalten für bestimmte Frameworkeigenschaften hinzufügt, mit dem Typ Type.WPF XAML implementation when processing XAML 2009 for load also adds this capability to the implicit type conversion behavior for certain framework properties that use type Type.

In WPF können Sie XAML 2009-Funktionen verwenden, jedoch nur für loose XAML (XAML, das nicht markupkompiliert ist).In WPF, you can use XAML 2009 features but only for loose XAML (XAML that is not markup-compiled). Markupkompilierte XAML für WPF und die BAML-Form von XAML unterstützen die XAML 2009-Schlüsselwörter und -Funktionen derzeit nicht.Markup-compiled XAML for WPF and the BAML form of XAML do not currently support the XAML 2009 keywords and features.

Siehe auchSee also