Megosztás a következőn keresztül:


ComponentResourceKey jelöléskiterjesztés

Meghatározza és hivatkozik a külső összetevőkből betöltött erőforrások kulcsaira. Ez lehetővé teszi, hogy az erőforrás-keresés céltípust adjon meg egy szerelvényben, nem pedig explicit erőforrás-szótárt egy szerelvényben vagy osztályban.

XAML attribútumhasználat (beállítási kulcs, kompakt)

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

XAML-attribútumhasználat (beállítási kulcs, részletes)

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

XAML attribútumhasználat (erőforrás kérése, tömörítés)

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

XAML attribútumhasználat (erőforrás kérése, részletes)

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

XAML-értékek

Érték Leírás
targetTypeName Az erőforrás-összeállításban definiált nyilvános közös nyelvi futtatókörnyezet (CLR) típusának neve.
targetID Az erőforrás kulcsa. Az erőforrások keresésekor az targetID analóg lesz a x:Key Directive-vel.

Megjegyzések

Ahogy a fenti használatokban látható, a {ComponentResourceKey} jelölőbővítmény-használat két helyen található:

  • Egy kulcs definíciója egy témaerőforrás-szótárban, amit a vezérlőelem szerzője ad meg.

  • Egy témaerőforrás elérése a szerelvényből, amikor újra meg szeretné előzni a vezérlőt, de olyan tulajdonságértékeket szeretne használni, amelyek a vezérlő témái által biztosított erőforrásokból származnak.

Témákból származó összetevő-erőforrásokra való hivatkozáshoz általában a {DynamicResource} használata ajánlott a {StaticResource}helyett. Ez a használatokban jelenik meg. {DynamicResource} azért ajánlott, mert magát a témát a felhasználó módosíthatja. Ha azt szeretné, hogy a vezérlő szerzője által a téma támogatásához legjobban illeszkedő összetevő-erőforrás dinamikus is legyen, akkor engedélyezze, hogy az összetevő-erőforrás hivatkozás is dinamikus legyen.

A TypeInTargetAssembly azonosítja azt a típust, amely abban a célszerelvényben található, amelyben az erőforrás ténylegesen definiálva van. A ComponentResourceKey a TypeInTargetAssembly pontos helyétől való függetlenül definiálható és használható, de végül a típust hivatkozott szerelvények segítségével kell feloldani.

A ComponentResourceKey-t gyakran használják kulcsok definiálására, amelyek aztán osztálytagként kerülnek láthatóvá. Ebben a használatban a ComponentResourceKey osztálykonstruktort használja, nem a korrektúrakiterjesztést. További információ: lásd ComponentResourceKey, vagy a témán belüli "A téma erőforrásaihoz tartozó kulcsok definiálása és hivatkozása" című szakaszt aSzerzői műveletek áttekintése.

A kulcsok létrehozásához és a kulcsokkal ellátott erőforrásokra való hivatkozáshoz az attribútumszintaxis gyakran használatos a ComponentResourceKey korrektúrabővítményhez.

A megjelenített kompakt szintaxis a korrektúrakiterjesztés ComponentResourceKey konstruktor-aláírására és pozícióparaméter-használatára támaszkodik. Fontos, hogy a targetTypeName és a targetID milyen sorrendben legyenek megadva. A részletes szintaxis a ComponentResourceKey paraméter nélküli konstruktorra támaszkodik, majd a TypeInTargetAssembly-et és a ResourceId-t olyan módon állítja be, hogy az hasonló legyen egy objektumelem valódi attribútumszintaxisához. A részletes szintaxisban a tulajdonságok beállításának sorrendje nem fontos. A két alternatíva (kompakt és részletes) kapcsolatát és mechanizmusait részletesebben a korrektúrakiterjesztések és a WPF XAMLcímű témakörben ismertetjük.

A targetID értéke gyakorlatilag bármilyen objektum lehet, nem kell sztringnek lennie. A WPF leggyakoribb használata azonban az, hogy a targetID értéket a sztringtípusú formátumokhoz igazítja, és ezek a sztringek érvényesek az XamlName nyelvtani szabályok szerint.

ComponentResourceKey használható az objektumelem szintaxisában. Ebben az esetben a bővítmény megfelelő inicializálásához mind a TypeInTargetAssembly, mind a ResourceId tulajdonságok értékét meg kell adni.

A WPF XAML-olvasó implementációjában a jelölőbővítmény kezelését a ComponentResourceKey osztály határozza meg.

ComponentResourceKey egy korrektúrakiterjesztés. Jelölőkiterjesztéseket általában akkor alkalmaznak, amikor szükség van arra, hogy az attribútumértékek ne csak konstans értékek vagy kezelőnevek legyenek, és a követelmény globálisabb, mint bizonyos típusok vagy tulajdonságok esetében a típuskonverterek használata. Az XAML-ben az összes korrektúrakiterjesztés az attribútumszintaxisában a { és } karaktert használja, amely az a konvenció, amellyel az XAML-processzor felismeri, hogy egy korrektúrakiterjesztésnek fel kell dolgoznia az attribútumot. További információ: Korrektúrakiterjesztések és WPF XAML.

Lásd még