x:Type İşaretleme Uzantısı
TypeBELIRTILEN xaml türü için temeldeki tür olan CLR nesnesini sağlar.
XAML Öznitelik Kullanımı
<object property="{x:Type prefix:typeNameValue}" .../>
XAML Nesne Öğesi Kullanımı
<x:Type TypeName="prefix:typeNameValue"/>
XAML Değerleri
| Değer | Açıklama |
|---|---|
prefix |
İsteğe bağlı. Varsayılan olmayan XAML ad alanını eşleyen bir ön ek. Ön ek belirtmek genellikle gerekli değildir. Bkz. açıklamalar. |
typeNameValue |
Gereklidir. Geçerli varsayılan XAML ad alanına çözümlenebilen bir tür adı; veya belirtilmişse belirtilen eşlenmiş ön ek prefix . |
Açıklamalar
x:TypeBiçimlendirme uzantısı, typeof() C# ' deki Işlece veya GetType Microsoft Visual Basic işleçine benzer bir işleve sahiptir.
x:TypeBiçimlendirme uzantısı, türü alan özellikler için dizeden bir dönüştürme davranışı sağlar Type . Giriş bir XAML türüdür. Giriş XAML türü ve çıkış CLR arasındaki ilişki, TypeTypeUnderlyingTypeXamlTypeXamlType 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.
.NET XAML hizmetlerinde, bu biçimlendirme uzantısının işlenmesi sınıfı tarafından tanımlanır TypeExtension .
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 ). Ancak, bu davranışı uygulamak karmaşık bir senaryodur. Örnekler için aşağıdaki "WPF kullanım notları" bölümüne bakın.
Öznitelik sözdizimi, bu işaretleme uzantısı ile kullanılan en yaygın sözdizimidir. Tanımlayıcı dizeden sonra belirtilen dize belirteci, x:TypeTypeName temel uzantı sınıfının değeri olarak atanır TypeExtension . 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.
x:TypeBiçimlendirme uzantısı nesne öğesi sözdiziminde kullanılabilir. Bu durumda, TypeName uzantıyı doğru şekilde başlatmak için özelliğinin değerini belirtmek gerekir.
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}" .../>
WPF kullanım notları
Varsayılan XAML ad alanı ve tür eşleme
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. Ö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. Ö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.
Dize olarak TypeName 'ı destekleyen tür özellikleri
WPF, Type biçimlendirme uzantısı kullanımı gerekmeden türdeki bazı özelliklerin değerini belirtmeyi etkinleştiren teknikleri destekler x:Type . Bunun yerine, değeri türü adı belirleyen bir dize olarak belirtebilirsiniz. Bunun örnekleri ControlTemplate.TargetType ve 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. Bunun yerine, bu, ile uygulanan bir erteleme davranışıdır FrameworkElementFactory .
Silverlight benzer bir kuralı destekler. 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. Bu nedenle, dize olarak TypeName davranışı, bir değeri olduğu yerde tüm Silverlight yerel özellik değerlendirmesinde yerleşik olarak bulunur Type .
XAML 2009
XAML 2009, genel türler için ek destek sağlar ve x:TypeArgumentsx:Type Bu desteği sağlamak için ve özelliklerinin davranışını değiştirir.
x:TypeArgumentsve genel nesne örneklemesi için ilişkili nesne öğesi kök dışında bir öğe üzerinde olabilir. Daha fazla bilgi için, X:TypeArguments yönergesinin"xaml 2009" bölümüne bakın.XAML 2009, biçimlendirme içinde genel bir türün kısıtlamasını belirtmek için bir sözdizimi destekler. Bu, ya da ile
x:TypeArgumentsx:Typebirlikte iki özellik tarafından kullanılabilir.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 'de XAML 2009 özelliklerini, ancak yalnızca gevşek XAML (biçimlendirme ile derlenen XAML) için kullanabilirsiniz. WPF için biçimlendirme derlenmiş XAML ve XAML 'nin BAML formu şu anda XAML 2009 anahtar sözcüklerini ve özelliklerini desteklememektedir.