Estensione del markup ComponentResourceKey

Aggiornamento: novembre 2007

Definisce le chiavi per le risorse caricate da assembly esterni e ne creato un riferimento. In questo modo viene attivata una ricerca di risorse per specificare un tipo di destinazione in un assembly, piuttosto che un dizionario di risorse esplicito in un assembly.

Utilizzo della sintassi XAML per gli attributi (impostazione chiave, abbreviata)

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

Utilizzo della sintassi XAML per gli attributi (impostazione chiave, dettagliata)

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

Utilizzo della sintassi XAML per gli attributi (richiesta risorsa, abbreviata)

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

Utilizzo della sintassi XAML per gli attributi (richiesta risorsa, dettagliata)

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

Valori XAML

targetTypeName

Nome del tipo Common Language Runtime (CLR) pubblico definito nell'assembly di risorse.

targetID

Chiave della risorsa. Durante la ricerca delle risorse, targetID sarà analogo all'attributo Attributo x:Key della risorsa.

Note

L'oggetto TypeInTargetAssembly identifica un tipo esistente nell'assembly di destinazione in cui la risorsa è effettivamente definita. È possibile definire e utilizzare ComponentResourceKey indipendentemente dalla conoscenza della posizione esatta in cui l'oggetto TypeInTargetAssembly è definito, ma il tipo deve essere risolto tramite gli assembly a cui si fa riferimento.

L'oggetto ComponentResourceKey viene comunemente utilizzato per definire le chiavi che vengono quindi esposte come membri di una classe. A tal fine, si utilizza il costruttore della classe ComponentResourceKey, non l'estensione del markup.

La sintassi dell'attributo è utilizzata comunemente per l'estensione del markup ComponentResourceKey. La sintassi abbreviata indicata si basa sulla firma del costruttore ComponentResourceKey.ComponentResourceKey e l'ordine nel quale vengono forniti targetTypeName e targetID è fondamentale. La sintassi dettagliata si basa sul costruttore predefinito ComponentResourceKey.ComponentResourceKey e imposta quindi le proprietà TypeInTargetAssembly e ResourceId in modo analogo alla sintassi vera e propria dell'attributo su un elemento oggetto. Nella sintassi dettagliata, l'ordine in cui sono impostate le proprietà non è importante. La relazione e i meccanismi di queste due alternative (abbreviata e dettagliata) sono descritti più approfonditamente nell'argomento Estensioni di markup e XAML.

L'oggetto ComponentResourceKey può essere utilizzato nella sintassi degli elementi oggetto. In questo caso, è richiesta la specifica del valore di entrambe le proprietà TypeInTargetAssembly e ResourceId per inizializzare correttamente l'estensione.

Nell'implementazione del lettore XAML di WPF, la gestione di questa estensione di markup viene definita dalla classe ComponentResourceKey.

ComponentResourceKey è un'estensione di markup. Le estensioni di markup in genere vengono implementate quando i valori dell'attributo dei caratteri escape non devono essere valori letterali o nomi dei gestori. Questo requisito è più globale rispetto al semplice utilizzo di convertitori di tipi su alcuni tipi o proprietà. Tutte le estensioni di markup in XAML utilizzano i caratteri { e } nella relativa sintassi degli attributi, vale a dire la convenzione in base alla quale il processore XAML riconosce che l'attributo deve essere elaborato da un'estensione di markup. Per ulteriori informazioni, vedere Estensioni di markup e XAML.

Vedere anche

Concetti

Applicazione di stili e modelli

Cenni preliminari su XAML

Estensioni di markup e XAML

Riferimenti

ComponentResourceKey

Style

ControlTemplate