ComponentResourceKey Biçimlendirme Uzantısı
Dış derlemelerden yüklenen kaynaklar için anahtarları tanımlar ve başvurur. Bu, kaynak aramanın bir derlemede veya bir sınıftaki açık kaynak sözlüğü yerine bir derlemede hedef türü belirtmeye olanak sağlar.
XAML Öznitelik Kullanımı (ayar anahtarı, sıkıştırılmış)
<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 isteği, sıkıştırılmış)
<object property="{DynamicResource {ComponentResourceKey {x:Type targetTypeName}, targetID}}" ... />
XAML Öznitelik Kullanımı (kaynak isteği, ayrıntılı)
<object property="{DynamicResource {ComponentResourceKey TypeInTargetAssembly={x:Type targetTypeName}, ResourceID=targetID}}" ... />
XAML Değerleri
targetTypeName |
Kaynak derlemesinde tanımlanan ortak ortak dil çalışma zamanı (CLR) türünün adı. |
targetID |
Kaynağın anahtarı. Kaynaklara baktığı targetID zaman, kaynağın targetID benzer olur. |
Açıklamalar
Yukarıdaki kullanımlarda olduğu gibi , { ComponentResourceKey } işaretleme uzantısı kullanımı iki yerde bulunur:
Bir denetim yazarı tarafından sağlanan tema kaynak sözlüğü içindeki bir anahtarın tanımı.
Derlemeden bir tema kaynağına erişirken, denetimi yeniden sınarken ancak denetimin temaları tarafından sağlanan kaynaklardan gelen özellik değerlerini kullanmak istediğiniz zaman.
Temalardan gelen bileşen kaynaklarına başvurmak için genellikle yerine kullanılması {DynamicResource}{StaticResource} önerilir. Bu, kullanımlarda gösterilir. {DynamicResource} , temanın kendisi kullanıcı tarafından değiştirilene kadar önerilir. Denetim yazarının temayı destekleme amacıyla en yakından eşleşen bileşen kaynağının da dinamik olması için bileşen kaynak başvurularınızı etkinleştirmeniz gerekir.
TypeInTargetAssembly, kaynağın gerçekten tanımlandığı hedef derlemede var olan bir türü tanımlar. , tam olarak nerede tanımlandığı bilmekten bağımsız olarak tanımlanabilir ve kullanılabilir, ancak sonunda başvurulan derlemeler ComponentResourceKeyTypeInTargetAssembly aracılığıyla türü çözümlemesi gerekir.
için yaygın ComponentResourceKey kullanımlardan biri, daha sonra bir sınıfın üyeleri olarak ortaya çıkacak anahtarları tanımlamaktır. Bu kullanım için, işaretleme ComponentResourceKey uzantısını değil sınıf oluşturucusu kullanırsanız. Daha fazla bilgi için Denetim Yazmaya Genel Bakış konusunun "Tema Kaynakları için Anahtarları Tanımlama ve ComponentResourceKey Başvuru" ComponentResourceKey
Hem anahtar kurmak hem de anahtarlı kaynaklara başvurmak için, işaretleme uzantısı için öznitelik söz dizimi ComponentResourceKey yaygın olarak kullanılır.
Gösterilen sıkıştırılmış söz dizimi, bir ComponentResourceKey işaretleme uzantısının oluşturucu imzasını ve konumsal parametre kullanımını kullanır. ve için verilen targetTypeNametargetID sıra önemlidir. Ayrıntılı söz dizimi, parametresiz oluşturucuya dayandır ve ardından ve öğesini bir nesne öğesinde gerçek öznitelik söz diziminin benzer bir ComponentResourceKeyTypeInTargetAssembly şekilde ResourceId ayarlar. Ayrıntılı söz dizimsinde özelliklerin ayarlanma sırası önemli değildir. Bu iki alternatifin (sıkıştırılmış ve ayrıntılı) ilişkisi ve mekanizmaları Biçimlendirme Uzantıları ve WPF XAMLkonusunda daha ayrıntılı olarak açıklanmıştır.
Teknik olarak, targetID değeri herhangi bir nesne olabilir, bir dize olması gerek yoktur. Ancak, WPF'de en yaygın kullanım değeri dize olan formlarla ve bu tür dizelerin targetIDtargetID
ComponentResourceKey nesne öğesi söz dizimsinde kullanılabilir. Bu durumda, uzantıyı düzgün bir şekilde başlatmak için TypeInTargetAssembly hem hem de özelliklerinin değerini belirtmeniz ResourceId 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 dizimlerinde { ve } karakterlerini kullanır. Bu kural, bir XAML işlemcisinin işaretleme uzantısının özniteliği işlemesi gerektiğini tanıması kuralıdır. Daha fazla bilgi için bkz. İşaretleme Uzantıları ve WPF XAML.