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 Namedize 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:TypeArgumentsx: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:Typeveya 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.