StaticResource, extension de balisage

Fournit une valeur pour tout 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 des ressources chargées auparavant à partir de la balise de la page XAML actuelle, ainsi que d'autres sources d'application, et génère cette valeur de ressource comme valeur de propriété dans les objets au moment de l'exécution.

Utilisation des attributs XAML

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

Utilisation des éléments d'objet XAML

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

Valeurs XAML

key

Clé de la ressource demandée. Cette clé est assignée initialement par le x:Key, directive si une ressource est créée dans la balise ou est fournie comme paramètre key lors de l'appel de ResourceDictionary.Add si la ressource est créée dans le code.

Notes

Remarque importanteImportant

Une StaticResource ne doit pas tenter de faire une référence vers l'avant à une ressource définie d'un point de vue lexical dans le fichier XAML.Ce type de tentative n'est pas pris en charge, et même si une telle référence n'échoue pas, la tentative de référence vers l'avant entraînera une altération des performances au moment du chargement lors de la recherche des tables de hachage internes représentant un ResourceDictionary.Pour des résultats optimaux, ajustez la composition de vos dictionnaires de ressources de manière à éviter les références vers l'avant.Si vous ne pouvez pas éviter une référence vers l'avant, utilisez DynamicResource, extension de balisage à la place.

La ResourceKey spécifiée doit correspondre à une ressource existante, identifiée par un x:Key, directive à un endroit quelconque dans votre page, l'application, les thèmes de contrôle et ressources externes disponibles ou les ressources système. La recherche de ressources s'effectue dans cet ordre. Pour plus d'informations sur le comportement de la recherche de ressources statiques et dynamiques, consultez Vue d'ensemble des ressources.

Une clé de ressource peut être une chaîne quelconque définie dans la XamlName, grammaire. Elle peut également être un autre type d'objet, tel qu'un Type. Une clé Type joue un rôle déterminant dans la manière dont les contrôles peuvent prendre la forme de 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.

Une ressource peut également être référencée de manière déclarative par le biais de DynamicResource, extension de balisage.

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 d'élément objet. Dans ce cas, la valeur de la propriété ResourceKey doit être spécifiée.

StaticResource peut également être employé dans une utilisation d'attribut 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 de processeur XAML WPF, la gestion de cette extension de balisage est définie par la classe StaticResourceExtension.

StaticResource 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 WPF.

Voir aussi

Concepts

Application d'un style et création de modèles

Vue d'ensemble du langage XAML (WPF)

Extensions de balisage et XAML WPF

Vue d'ensemble des ressources

Ressources et code