ComponentResourceKey, extension de balisage
Mise à jour : novembre 2007
Définit et référence des clés pour des ressources chargées à partir d'assemblys externes. Une recherche de ressource peut ainsi spécifier un type cible dans un assembly, plutôt qu'un dictionnaire de ressources explicite dans un assembly.
Utilisation des attributs XAML (définition de clé, compact)
<object x:Key="{ComponentResourceKey {x:Type targetTypeName}, targetID}" .../>
Utilisation d'attributs XAML (définition de clé, détaillé)
<object x:Key="{ComponentResourceKey TypeInTargetAssembly={x:Type targetTypeName}, ResourceID=targetID}" .../>
Utilisation d'attributs XAML (demande de ressource, compact)
<object property="{DynamicResource {ComponentResourceKey {x:Type targetTypeName}, targetID}}" .../>
Utilisation d'attributs XAML (demande de ressource, détaillé)
<object property="{DynamicResource {ComponentResourceKey TypeInTargetAssembly={x:Type targetTypeName}, ResourceID=targetID}}" .../>
Valeurs XAML
targetTypeName |
Nom du type Common Language Runtime (CLR) public défini dans l'assembly de ressource. |
targetID |
Clé pour la ressource. Lors de la recherche de ressources, targetID équivaut au x:Key, attribut de la ressource. |
Notes
Le TypeInTargetAssembly identifie un type qui existe dans l'assembly cible où la ressource est réellement définie. Vous pouvez définir et utiliser une ComponentResourceKey que vous sachiez ou non exactement où le TypeInTargetAssembly est défini. Elle doit toutefois finalement résoudre le type via les assemblys référencés.
La ComponentResourceKey est souvent utilisée pour définir des clés qui sont ensuite exposées comme membres d'une classe. Pour cela, utilisez le constructeur de classe ComponentResourceKey, et non l'extension de balisage.
La syntaxe d'attribut est communément utilisée pour l'extension de balisage ComponentResourceKey. La syntaxe compacte illustrée compte sur la signature du constructeur ComponentResourceKey.ComponentResourceKey. L'ordre dans lequel les targetTypeName et targetID sont indiqués est important. La syntaxe détaille repose sur le constructeur ComponentResourceKey.ComponentResourceKey par défaut, puis définit TypeInTargetAssembly et ResourceId à la manière d'une syntaxe d'attribut réelle sur un élément objet. Dans la syntaxe détaillée, l'ordre dans lequel les propriétés sont définies n'est pas important. La relation et les mécanismes de cette alternative (compacte et détaillée) sont décrits plus en détails dans la rubrique Extensions de balisage et XAML.
ComponentResourceKey peut être utilisé dans la syntaxe d'élément objet. Dans ce cas, il convient de spécifier la valeur des propriétés TypeInTargetAssembly et ResourceId pour initialiser correctement l'extension.
Dans l'implémentation du lecteur XAML WPF, la gestion de cette extension de balisage est définie par la classe ComponentResourceKey.
ComponentResourceKey est une extension de balisage. Des extensions de balisage sont généralement implémentées pour éviter que les valeurs d'attribut ne soient autre chose que des valeurs littérales ou des noms de gestionnaire et lorsque l'exigence va plus loin que la définition de convertisseurs de type sur certains types ou propriétés. Toutes les extensions de balisage en XAML utilisent les caractères { et } dans leur syntaxe d'attributs. Cette convention indique au convertisseur XAML que l'extension de balisage doit traiter l'attribut. Pour plus d'informations, consultez Extensions de balisage et XAML.
Voir aussi
Concepts
Application d'un style et création de modèles
Vue d'ensemble du langage XAML
Extensions de balisage et XAML