StaticResource, extension de balisage

Fournit une valeur pour n’importe quel attribut de propriété XAML en recherchant une référence à une ressource déjà définie. Le comportement de recherche de cette ressource est analogue à la recherche au moment du chargement, qui recherche les ressources qui ont été précédemment chargées à partir du balisage de la page XAML active, ainsi que d’autres sources d’application, et génère cette valeur de ressource comme valeur de propriété dans les objets d’exécution.

Utilisation d'attributs XAML

<object property="{StaticResource key}" ... />  

Utilisation d'éléments objet XAML

<object>  
  <object.property>  
<StaticResource ResourceKey="key" ... />  
  </object.property>  
</object>  

Valeurs XAML

Valeur Description
key Clé pour la ressource demandée. Cette clé a été initialement affectée par la directive x :Key si une ressource a été créée dans le balisage ou a été fournie en tant que paramètre lors de l’appel ResourceDictionary.Add si la ressource a été créée dans le key code.

Notes

Important

Il StaticResource ne faut pas tenter d’effectuer une référence de transfert à une ressource définie lexicalement plus loin dans le fichier XAML. La tentative de ce type n’est pas prise en charge et, même si une telle référence n’échoue pas, la tentative de référence avant entraîne une pénalité de performances de temps de chargement lorsque les tables de hachage internes représentant une ResourceDictionary recherche sont recherchées. Pour obtenir de meilleurs résultats, ajustez la composition de vos dictionnaires de ressources afin que les références vers l’avant puissent être évitées. Si vous ne pouvez pas éviter une référence de transfert, utilisez l’extension dynamicResource Markup à la place.

L’élément spécifié ResourceKey doit correspondre à une ressource existante, identifiée avec une directive x :Key à un certain niveau dans votre page, votre application, les thèmes de contrôle disponibles et les ressources externes ou les ressources système. La recherche de ressources se produit dans cet ordre. Pour plus d’informations sur le comportement de recherche de ressources pour les ressources statiques et dynamiques, consultez Ressources XAML.

Une clé de ressource peut être n’importe quelle chaîne définie dans la grammaire XamlName. Une clé de ressource peut également être d’autres types d’objets, tels qu’un Type. Une Type clé est essentielle à la façon dont les contrôles peuvent être styleés par thèmes, par le biais d’une clé de style implicite. Pour plus d’informations, consultez Vue d’ensemble de la création de contrôles.

L’autre moyen déclaratif de référencer une ressource est une extension de balisage DynamicResource.

La syntaxe d’attribut est la syntaxe la plus couramment utilisée avec cette extension de balisage. Le jeton de chaîne fourni après la chaîne d’identificateur StaticResource est assigné en tant que valeur ResourceKey de la classe d’extension StaticResourceExtension sous-jacente.

StaticResource peut être utilisé dans la syntaxe de l’élément objet. Dans ce cas, la spécification de la valeur de la ResourceKey propriété est requise.

StaticResource peut également être utilisé dans une utilisation d'attributs en clair qui spécifie la propriété ResourceKey en tant que paire propriété=valeur :

<object property="{StaticResource ResourceKey=key}" ... />  

L'utilisation en clair est souvent utile pour les extensions qui comportent plusieurs propriétés définissables ou si certaines propriétés sont facultatives. StaticResource ne comportant qu'une seule propriété définissable (obligatoire), cette utilisation en clair n'est pas classique.

Dans l’implémentation du processeur XAML WPF, la gestion de cette extension de balisage est définie par la StaticResourceExtension classe.

StaticResource est une extension de balisage. Les 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 dépasse le cadre de 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’attribut, c’est-à-dire la convention par laquelle un processeur XAML reconnaît qu’une extension de balisage doit traiter l’attribut. Pour plus d’informations, consultez Extensions de balisage et XAML WPF.

Voir aussi