Extension de balisage StaticResource
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 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
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 key lors de l’appel de ResourceDictionary.Add si la ressource a été créée dans le code. |
Remarques
Important
Un StaticResource
ne doit pas tenter d’effectuer une référence vers une ressource définie lexicalement plus loin dans le fichier XAML. Une telle tentative n’est pas prise 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 pénalité en termes de performances de temps de chargement lorsque les tables de hachage internes représentant un ResourceDictionary seront 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 de balisage DynamicResource à la place.
Le ResourceKey spécifié 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 s'effectue 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 clé Type est fondamentale pour 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 un DynamicResource Markup Extension.
La syntaxe d’attribut est la syntaxe la plus courante utilisée avec cette extension de balisage. Le jeton de chaîne fourni après la chaîne d'identification StaticResource
est assigné en tant que valeur ResourceKey de la classe d'extension StaticResourceExtension sous-jacente.
StaticResource
peut être utilisé dans la syntaxe d'un élément objet. Dans ce cas, la spécification de la valeur de la propriété ResourceKey est requise.
StaticResource
peut également être utilisé dans une utilisation verbeuse d'attributs qui spécifie la propriété ResourceKey en tant que paire property=value :
<object property="{StaticResource ResourceKey=key}" ... />
L’utilisation verbale est souvent utile pour les extensions qui ont plusieurs propriétés configurables, ou si certaines propriétés sont facultatives. Étant donné que StaticResource
n’a qu’une seule propriété définissable (obligatoire), cette utilisation détaillée n’est pas classique.
Dans l’implémentation du processeur XAML WPF, la gestion de cette extension de balisage est définie par la classe StaticResourceExtension.
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 XAML et WPF.
Voir aussi
.NET Desktop feedback