ComponentResourceKey Biçimlendirme Uzantısı

Dış derlemelerden yüklenen kaynaklar için anahtarları tanımlar ve bunlara başvurur. Bu, bir derlemedeki veya bir sınıftaki açık kaynak sözlüğü yerine bir derlemede hedef türü belirtmek için kaynak aramasını etkinleştirir.

XAML Öznitelik Kullanımı (ayar anahtarı, küçük)

<object x:Key="{ComponentResourceKey {x:Type targetTypeName}, targetID}" ... />  

XAML Öznitelik Kullanımı (ayar anahtarı, ayrıntılı)

<object x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type targetTypeName}, ResourceID=targetID}" ... />  

XAML Öznitelik Kullanımı (kaynak isteme, sıkıştırma)

<object property="{DynamicResource {ComponentResourceKey {x:Type targetTypeName}, targetID}}" ... />  

XAML Öznitelik Kullanımı (kaynak isteme, ayrıntılı)

<object property="{DynamicResource {ComponentResourceKey TypeInTargetAssembly={x:Type targetTypeName}, ResourceID=targetID}}" ... />  

XAML Değerleri

Değer Tanım
targetTypeName Kaynak derlemesinde tanımlanan ortak ortak dil çalışma zamanı (CLR) türünün adı.
targetID Kaynağın anahtarı. Kaynaklar arandığında, targetID kaynağın x:Key Yönergesine benzer olacaktır.

Açıklamalar

Yukarıdaki kullanımlarda görüldüğü gibi, {ComponentResourceKey} işaretleme uzantısı kullanımı iki yerde bulunur:

  • Denetim yazarı tarafından sağlanan tema kaynak sözlüğündeki bir anahtarın tanımı.

  • Denetimi yeniden düşünürken ancak denetimin temaları tarafından sağlanan kaynaklardan gelen özellik değerlerini kullanmak istediğinizde, derlemeden bir tema kaynağına erişme.

Temalardan gelen bileşen kaynaklarına başvurmak için genellikle yerine {StaticResource}kullanmanız {DynamicResource} önerilir. Bu, kullanımlarda gösterilir. {DynamicResource} önerilir çünkü temanın kendisi kullanıcı tarafından değiştirilebilir. Denetim yazarının temayı destekleme amacına en yakın bileşen kaynağını istiyorsanız, bileşen kaynak başvurunuzun da dinamik olmasını etkinleştirmeniz gerekir.

, TypeInTargetAssembly kaynağın gerçekten tanımlandığı hedef derlemede var olan bir türü tanımlar. A ComponentResourceKey , öğesinin tam olarak nerede TypeInTargetAssembly tanımlandığını bilmekten bağımsız olarak tanımlanabilir ve kullanılabilir, ancak sonunda türü başvurulmuş derlemeler aracılığıyla çözümlemesi gerekir.

için ComponentResourceKey yaygın bir kullanım, daha sonra bir sınıfın üyesi olarak kullanıma sunulan anahtarları tanımlamaktır. Bu kullanım için, işaretleme uzantısını ComponentResourceKey değil sınıf oluşturucuyu kullanırsınız. Daha fazla bilgi için, Denetim Yazmaya Genel Bakış konusunun "Tema Kaynakları için Anahtar Tanımlama ve Başvurma" bölümüne bakınComponentResourceKey.

Hem anahtar oluşturma hem de anahtarlı kaynaklara başvurma için, işaretleme uzantısı için ComponentResourceKey öznitelik söz dizimi yaygın olarak kullanılır.

Gösterilen sıkıştırılmış söz dizimi, bir işaretleme uzantısının oluşturucu imzasını ComponentResourceKey ve konumsal parametre kullanımını dayanır. ve targetID değerinin targetTypeName verildiği sıra önemlidir. Ayrıntılı söz dizimi parametresiz oluşturucuya ComponentResourceKey dayanır ve sonra ve ResourceId değerini bir nesne öğesindeki doğru öznitelik söz dizimine benzer şekilde ayarlarTypeInTargetAssembly. Ayrıntılı söz diziminde, özelliklerin ayarlanma sırası önemli değildir. Bu iki alternatifin (sıkıştırılmış ve ayrıntılı) ilişkisi ve mekanizmaları İşaretleme Uzantıları ve WPF XAML konusunda daha ayrıntılı olarak açıklanmıştır.

Teknik olarak, değeri targetID herhangi bir nesne olabilir, bir dize olması gerekmez. Ancak WPF'deki en yaygın kullanım, değeri dize olan formlarla ve bu tür dizelerin XamlName Dilbilgisinde geçerli olduğu formlarla hizalamaktırtargetID.

ComponentResourceKey nesne öğesi söz diziminde kullanılabilir. Bu durumda, uzantıyı düzgün bir şekilde başlatmak için hem hem de TypeInTargetAssemblyResourceId özelliklerinin değerinin belirtilmesi gerekir.

WPF XAML okuyucu uygulamasında, bu işaretleme uzantısı için işleme sınıfı tarafından ComponentResourceKey tanımlanır.

ComponentResourceKey bir işaretleme uzantısıdır. Biçimlendirme uzantıları, genellikle öznitelik değerlerinin değişmez değerler veya işleyici isimleri dışına çıkma gereksinimi olduğunda ve bu gereksinim, belirli türler veya özellikler üzerine tür dönüştürücülerini koymaktan daha genel olduğunda uygulanır. XAML'deki tüm işaretleme uzantıları öznitelik söz diziminde { ve } karakterlerini kullanır. Bu, bir XAML işlemcisinin işaretleme uzantısının özniteliği işlemesi gerektiğini tanıdığı kuraldır. Daha fazla bilgi için bkz . biçimlendirme uzantıları ve WPF XAML.

Ayrıca bkz.