Aracılığıyla paylaş


x:Tür biçimlendirme uzantısı

Belirtilen 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 Açıklama
prefix Opsiyonel. 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 prefix sağlanırsa belirtilen eşlenmiş ön ek.

Açıklamalar

x:Type işaretleme uzantısı, C# içindeki typeof() işlecine veya Microsoft Visual Basic'teki GetType işlecine benzer bir işleve sahiptir.

x:Type işaretleme uzantısı, türü 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ığı IXamlTypeResolver hizmetini temel alarak gerekli XamlType baktıktan sonra çıkış Type giriş XamlTypeUnderlyingType olmasıdır.

.NET XAML Hizmetleri'nde, bu işaretleme uzantısının işlenmesi TypeExtension sınıfı tarafından tanımlanır.

Belirli çerçeve uygulamalarında, değer olarak Type alan bazı özellikler türün adını doğrudan 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öz dizimi, bu işaretleme uzantısıyla kullanılan en yaygın söz dizimidir. x:Type tanımlayıcı dizesinden sonra sağlanan dize belirteci, temel alınan TypeExtension uzantı sınıfının TypeName değeri olarak atanır. CLR türlerini temel alan .NET XAML Hizmetleri için varsayılan XAML şema bağlamı altında, bu özniteliğin değeri istenen türün Name veya varsayılan olmayan bir XAML ad alanı eşlemesi için ön ek Name içerir.

x:Type işaretleme uzantısı nesne öğesi söz diziminde kullanılabilir. Bu durumda, uzantıyı düzgün bir şekilde başlatmak için TypeName özelliğinin değerinin belirtilmesi gerekir.

x:Type işaretleme 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. Önekler, XAML ad alanları ve CLR ad alanlarını eşleme hakkında daha fazla bilgi için bkz. XAML Ad Alanları ve WPF XAML için Ad Alanı Eşlemesi.

Typename-as-String'i Destekleyen Tür Özellikleri

WPF, x:Type işaretleme uzantısı kullanımı gerektirmeden Type türündeki bazı özelliklerin değerini belirtmeyi sağlayan teknikleri destekler. Bunun yerine, değeri türü adlandıran bir dize olarak belirtebilirsiniz. Buna örnek olarak ControlTemplate.TargetType ve Style.TargetTypeverilebilir. 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 FrameworkElementFactoryaracılığıyla uygulanan bir erteleme davranışıdır.

Silverlight benzer bir kuralı destekler. Aslında Silverlight şu anda XAML dil desteğinde {x:Type} desteklemez ve WPF-Silverlight XAML geçişini desteklemesi amaçlanan birkaç durum dışında {x:Type} kullanımlarını kabul etmez. Bu nedenle, typename-as-string davranışı, bir Type değeri olduğu 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 bu desteği sağlamak için x:TypeArguments ve x:Type özellik davranışını değiştirir.

  • 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, x:TypeArgumentstarafından, x:Typetarafından veya birlikte iki özellik tarafından kullanılabilir.

  • Yük için XAML 2009 işlenirken WPF XAML uygulaması, Typetürünü kullanan belirli ç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.