Aracılığıyla paylaş


ComponentResourceKey Biçimlendirme Uzantısı

Defines and references keys for resources that are loaded from external assemblies. Bu derleme, yerine bir açık kaynak sözlüğü bir derleme veya bir sınıf hedef türü belirtmek bir kaynak arama sağlar.

XAML Attribute Usage (setting key, compact)

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

XAML Attribute Usage (setting key, verbose)

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

XAML Attribute Usage (requesting resource, compact)

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

XAML Attribute Usage (requesting resource, verbose)

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

XAML Values

targetTypeName

The name of the public common language runtime (CLR) type that is defined in the resource assembly.

targetID

The key for the resource. When resources are looked up, targetID will be analogous to the x: anahtar yönergesi of the resource.

Açıklamalar

Yukarıdaki kullanımları görüldüğü gibi bir {ComponentResourceKey} İşaretleme uzantısı kullanımı iki yerde bulundu:

  • Anahtar içindeki denetim yazarı tarafından sağlanan gibi bir tema kaynak sözlük tanımı.

  • Tema kaynak derlemesinden erişmenin, ne zaman retemplating denetimi olan ancak denetimin temalar tarafından sağlanan kaynaklardan gelen özellik değerlerini kullanmak istiyorsanız.

Temalarından gelen bileşen kaynaklara başvurmak için genellikle, kullanmanız önerilir {DynamicResource} yerine {StaticResource}. Bu kullanımları gösterilmektedir. {DynamicResource}Tema kullanıcı tarafından değiştirilebilir için önerilir. Tema desteklemek için Denetim yazarın amacı en yakın biçimde eşleşen bileşen kaynak istiyorsanız, bileşen kaynak başvuru da dinamik olarak etkinleştirmeniz gerekir.

The TypeInTargetAssembly identifies a type that exists in the target assembly where the resource is actually defined. A ComponentResourceKey can be defined and used independently of knowing exactly where the TypeInTargetAssembly is defined, but eventually must resolve the type through referenced assemblies.

A common usage for ComponentResourceKey is to define keys that are then exposed as members of a class. For this usage, you use the ComponentResourceKey class constructor, not the markup extension. Daha fazla bilgi için bkz: ComponentResourceKey, ya da "tanýmlamak ve baþvurmak anahtarları tema kaynakları" bölümüne Denetim Yazımına Genel Bakış.

Hem anahtarları oluşturma ve başvuru kaynakları anahtarlı için öznitelik sözdizimi yaygın olarak kullanılan ComponentResourceKey İşaretleme uzantısı.

Sıkışık gösterilen sözdizimi kullanır ComponentResourceKey.ComponentResourceKey kurucusu imza ve konumsal parametre kullanımı bir biçimlendirme uzantısı. Sırayı targetTypeName ve targetID verilen önemlidir. The verbose syntax relies on the ComponentResourceKey.ComponentResourceKey default constructor, and then sets the TypeInTargetAssembly and ResourceId in a way that is analogous to a true attribute syntax on an object element. Ayrıntılı sözdiziminde, hangi özelliklerini belirleme sırası önemli değildir. The relationship and mechanisms of these two alternatives (compact and verbose) is described in more detail in the topic Biçimlendirme Uzantıları ve WPF XAML.

Teknik olarak, değeri targetID herhangi bir nesne olabilir, onu yok olacak bir dize. Ancak, hizalamak için wpf en yaygın kullanımı olan targetID değer dizeleri olan ve bu tür dizeler geçerli olduğu formlarla XamlName dilbilgisi.

ComponentResourceKey can be used in object element syntax. In this case, specifying the value of both the TypeInTargetAssembly and ResourceId properties is required to properly initialize the extension.

In the WPF XAML reader implementation, the handling for this markup extension is defined by the ComponentResourceKey class.

ComponentResourceKey is a markup extension. Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than just putting type converters on certain types or properties. All markup extensions in XAML use the { and } characters in their attribute syntax, which is the convention by which a XAML processor recognizes that a markup extension must process the attribute. For more information, see Biçimlendirme Uzantıları ve WPF XAML.

Ayrıca bkz.

Başvuru

ComponentResourceKey

ControlTemplate

Kavramlar

Denetim Yazımına Genel Bakış

XAML'e Genel Bakış (WPF)

Biçimlendirme Uzantıları ve WPF XAML