x:Type İşaretleme Uzantısı
Belirtilen bir XAML türü için temel alınan tür olan CLR Type 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 | Tanım |
---|---|
prefix |
isteğe bağlı. Varsayılan olmayan bir XAML ad alanını eşleyen bir ön ek. Ön ek belirtmek genellikle gerekli değildir. Bkz. Açıklamalar. |
typeNameValue |
Gerekli. Geçerli varsayılan XAML ad alanına çözümlenebilir bir tür adı; veya belirtilen eşlenmiş ön ek sağlanırsa prefix . |
Açıklamalar
biçimlendirme x:Type
uzantısı, C# içindeki işleçle typeof()
veya Microsoft Visual Basic'teki işleçle GetType
benzer bir işleve sahiptir.
x:Type
biçimlendirme uzantısı, türünü Typealan özellikler için dizeden dönüştürme davranışı sağlar. Giriş bir XAML türüdür. Giriş XAML türü ile çıkış CLR Type arasındaki ilişki, XAML şema bağlamını ve bağlamın sağladığı hizmeti temel alarak gerekli XamlType olup olmadığını baktıktan sonra çıkışın TypeIXamlTypeResolver girdisinin XamlTypeolmasıdırUnderlyingType.
.NET XAML Hizmetleri'nde, bu işaretleme uzantısının işlenmesi sınıfı tarafından TypeExtension tanımlanır.
Belirli çerçeve uygulamalarında, değer olarak alan Type bazı özellikler türün adını doğrudan kabul edebilir (türün Name
dize değeri). 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ı dizesinden x:Type
sonra sağlanan dize belirteci, temel alınan TypeExtension uzantı sınıfının değeri olarak TypeName atanır. CLR türlerini temel alan .NET XAML Hizmetleri için varsayılan XAML şeması bağlamı altında, bu özniteliğin değeri istenen türdedir Name veya varsayılan olmayan bir XAML ad alanı eşlemesi için bir ön ek içeren değeri içerir Name .
İşaretlemeyi x:Type
genişletme, nesne öğesi söz diziminde kullanılabilir. Bu durumda, uzantıyı düzgün bir şekilde başlatmak için özelliğinin TypeName değerinin belirtilmesi gerekir.
İşaretleme x:Type
uzantısı ayrıntılı bir öznitelik olarak da 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şlemesi
WPF programlaması 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şvururken genellikle ön eklerden kaçınabilirsiniz. Özel bir derlemeden bir türe başvuruyorsanız veya WPF derlemesinde bulunan ancak varsayılan XAML ad alanına eşlenmemiş bir CLR ad alanından gelen türler için bir ön eki eşlemeniz gerekebilir. Ön ekler, XAML ad alanları ve CLR ad alanlarını eşleme hakkında daha fazla bilgi için bkz . WPF XAML için XAML Ad Alanları ve Ad Alanı Eşlemesi.
Typename-as-String'i Destekleyen Tür Özellikleri
WPF, işaretleme uzantısı kullanımı gerektirmeden x:Type
türündeki Type bazı özelliklerin değerini belirtmeyi sağlayan teknikleri destekler. Bunun yerine, değeri türü adlandıran bir dize olarak belirtebilirsiniz. Buna örnek olarak ve Style.TargetTypeverilebilirControlTemplate.TargetType. Bu davranış için destek, tür dönüştürücüleri veya işaretleme uzantıları aracılığıyla sağlanmaz. Bunun yerine, bu aracılığıyla FrameworkElementFactoryuygulanan bir erteleme davranışıdır.
Silverlight benzer bir kuralı destekler. Aslında Silverlight şu anda {x:Type}
XAML dil desteğini desteklemez ve WPF-Silverlight XAML geçişini desteklemeye yönelik birkaç durumun dışında kullanımları kabul {x:Type}
etmez. Bu nedenle, typename-as-string davranışı, değerin olduğu Type tüm Silverlight yerel özellik değerlendirmesinde yerleşik olarak bulunur.
XAML 2009
XAML 2009, genel türler için ek destek sağlar ve ve özelliğinin x:TypeArguments
x:Type
davranışını değiştirerek bu desteği sağlar.
x:TypeArguments
ve genel bir nesne örneği için ilişkili nesne öğesi kök dışındaki öğelerde olabilir. Daha fazla bilgi için x:TypeArguments Yönergesi'nin "XAML 2009" bölümüne bakın.XAML 2009, işaretlemede genel bir türün kısıtlamasını belirtmek için söz dizimlerini destekler. Bu, tarafından ,
x:Type
veya iki özellik tarafından birlikte kullanılabilirx:TypeArguments
.Yük için XAML 2009 işlenirken WPF XAML uygulaması, türünü kullanan Typebelirli çerçeve özellikleri için örtük tür dönüştürme davranışına da bu özelliği ekler.
WPF'de XAML 2009 özelliklerini kullanabilirsiniz, ancak yalnızca gevşek XAML (işaretleme derlenmemiş XAML) için kullanabilirsiniz. WPF için işaretlemeyle derlenmiş XAML ve XAML'nin BAML biçimi şu anda XAML 2009 anahtar sözcüklerini ve özelliklerini desteklememektedir.
Ayrıca bkz.
.NET Desktop feedback