x:Type İşaretleme Uzantısıx:Type Markup Extension

TypeBELIRTILEN xaml türü için temeldeki tür olan CLR nesnesini sağlar.Supplies the CLR Type object that is the underlying type for a specified XAML type.

XAML Öznitelik KullanımıXAML Attribute Usage

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

XAML Nesne Öğesi KullanımıXAML Object Element Usage

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

XAML DeğerleriXAML Values

prefix İsteğe bağlı.Optional. Varsayılan olmayan XAML ad alanını eşleyen bir ön ek.A prefix that maps a non-default XAML namespace. Ön ek belirtmek genellikle gerekli değildir.Specifying a prefix is frequently not necessary. Bkz. açıklamalar.See Remarks.
typeNameValue Gereklidir.Required. Geçerli varsayılan XAML ad alanına çözümlenebilen bir tür adı; veya belirtilmişse belirtilen eşlenmiş ön ek prefix .A type name resolvable to the current default XAML namespace; or the specified mapped prefix if prefix is supplied.

AçıklamalarRemarks

x:TypeBiçimlendirme uzantısı, typeof() C# ' deki Işlece veya GetType Microsoft Visual Basic işleçine benzer bir işleve sahiptir.The x:Type markup extension has a similar function to the typeof() operator in C# or the GetType operator in Microsoft Visual Basic.

x:TypeBiçimlendirme uzantısı, türü alan özellikler için dizeden bir dönüştürme davranışı sağlar Type .The x:Type markup extension supplies a from-string conversion behavior for properties that take the type Type. Giriş bir XAML türüdür.The input is a XAML type. Giriş XAML türü ve çıkış CLR arasındaki ilişki, Type Type UnderlyingType XamlType XamlType xaml şema bağlamına ve IXamlTypeResolver bağlamın sağladığı hizmete bağlı olarak gerekli olan, çıktının girişin bulunduğu bir giriştir.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.

.NET XAML hizmetlerinde, bu biçimlendirme uzantısının işlenmesi sınıfı tarafından tanımlanır TypeExtension .In .NET XAML Services, the handling for this markup extension is defined by the TypeExtension class.

Belirli çerçeve uygulamalarında, değer olarak alan bazı özellikler Type doğrudan türün adını kabul edebilir (türün dize değeri 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). Ancak, bu davranışı uygulamak karmaşık bir senaryodur.However, implementing this behavior is a complex scenario. Örnekler için aşağıdaki "WPF kullanım notları" bölümüne bakın.For examples, see the "WPF Usage Notes" section that follows.

Öznitelik sözdizimi, bu işaretleme uzantısı ile kullanılan en yaygın sözdizimidir.Attribute syntax is the most common syntax used with this markup extension. Tanımlayıcı dizeden sonra belirtilen dize belirteci, x:Type TypeName temel uzantı sınıfının değeri olarak atanır TypeExtension .The string token provided after the x:Type identifier string is assigned as the TypeName value of the underlying TypeExtension extension class. CLR türlerini temel alan .NET XAML Hizmetleri için varsayılan XAML şeması bağlamı altında, bu özniteliğin değeri Name istenen türden ya da Name varsayılan olmayan xaml ad alanı eşlemesi için ön ek tarafından önceden bir ön eki tarafından bulunur.Under the default XAML schema context for .NET 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.

x:TypeBiçimlendirme uzantısı nesne öğesi sözdiziminde kullanılabilir.The x:Type markup extension can be used in object element syntax. Bu durumda, TypeName uzantıyı doğru şekilde başlatmak için özelliğinin değerini belirtmek gerekir.In this case, specifying the value of the TypeName property is required to properly initialize the extension.

x:TypeBiçimlendirme uzantısı da verbose özniteliği olarak kullanılabilir; ancak bu kullanım tipik değildir:<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}" .../>

WPF kullanım notlarıWPF Usage Notes

Varsayılan XAML ad alanı ve tür eşlemeDefault XAML Namespace and Type Mapping

WPF programlama için varsayılan XAML ad alanı, tipik XAML senaryoları için ihtiyacınız olan XAML türlerinin çoğunu içerir; Bu nedenle, XAML türü değerlerine başvuru yaparken genellikle öneklerden kaçınabilirsiniz.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. Özel bir derlemeden veya bir WPF derlemesinde bulunan ancak varsayılan XAML ad alanıyla eşlenmeyen bir CLR ad alanı olan türler için bir türe başvuruyordıysanız bir ön eki eşlemeniz gerekebilir.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. Ön ekler, XAML ad alanları ve eşleme CLR ad alanları hakkında daha fazla bilgi için bkz. WPF XAML Için xaml ad alanları ve ad alanı eşlemesi.For more information about prefixes, XAML namespaces, and mapping CLR namespaces, see XAML Namespaces and Namespace Mapping for WPF XAML.

Dize olarak TypeName 'ı destekleyen tür özellikleriType Properties That Support Typename-as-String

WPF, Type biçimlendirme uzantısı kullanımı gerekmeden türdeki bazı özelliklerin değerini belirtmeyi etkinleştiren teknikleri destekler x:Type .WPF supports techniques that enable specifying the value of some properties of type Type without requiring an x:Type markup extension usage. Bunun yerine, değeri türü adı belirleyen bir dize olarak belirtebilirsiniz.Instead, you can specify the value as a string that names the type. Bunun örnekleri ControlTemplate.TargetType ve Style.TargetType .Examples of this are ControlTemplate.TargetType and Style.TargetType. Bu davranış için destek, tür dönüştürücüler veya biçimlendirme uzantıları aracılığıyla sağlanmaz.Support for this behavior is not provided through either type converters or markup extensions. Bunun yerine, bu, ile uygulanan bir erteleme davranışıdır FrameworkElementFactory .Instead, this is a deferral behavior implemented through FrameworkElementFactory.

Silverlight benzer bir kuralı destekler.Silverlight supports a similar convention. Aslında, Silverlight şu anda {x:Type} xaml dil desteğini desteklemez ve {x:Type} WPF-Silverlight xaml geçişini desteklemeye yönelik birkaç koşulda kullanımları kabul etmez.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. Bu nedenle, dize olarak TypeName davranışı, bir değeri olduğu yerde tüm Silverlight yerel özellik değerlendirmesinde yerleşik olarak bulunur Type .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, genel türler için ek destek sağlar ve x:TypeArguments x:Type Bu desteği sağlamak için ve özelliklerinin davranışını değiştirir.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 ve genel nesne örneklemesi için ilişkili nesne öğesi kök dışında bir öğe üzerinde olabilir.x:TypeArguments and the associated object element for a generic object instantiation can be on elements other than the root. Daha fazla bilgi için, X:TypeArguments yönergesinin"xaml 2009" bölümüne bakın.For more information, see the "XAML 2009" section of x:TypeArguments Directive.

  • XAML 2009, biçimlendirme içinde genel bir türün kısıtlamasını belirtmek için bir sözdizimi destekler.XAML 2009 supports a syntax for specifying a generic type's constraint in markup. Bu, ya da ile x:TypeArguments x:Type birlikte iki özellik tarafından kullanılabilir.This can be used by x:TypeArguments, by x:Type, or by the two features in combination.

  • Yükleme için XAML 2009 ' i işlerken WPF XAML uygulamasında bu özellik, türü kullanan belirli Framework özellikleri için örtük tür dönüştürme davranışına de eklenir 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.

WPF 'de XAML 2009 özelliklerini, ancak yalnızca gevşek XAML (biçimlendirme ile derlenen XAML) için kullanabilirsiniz.In WPF, you can use XAML 2009 features but only for loose XAML (XAML that is not markup-compiled). WPF için biçimlendirme derlenmiş XAML ve XAML 'nin BAML formu şu anda XAML 2009 anahtar sözcüklerini ve özelliklerini desteklememektedir.Markup-compiled XAML for WPF and the BAML form of XAML do not currently support the XAML 2009 keywords and features.

Ayrıca bkz.See also