StaticResource, extension de balisageStaticResource Markup Extension

Fournit une valeur pour tout XAMLXAML attribut de propriété en recherchant une référence à une ressource déjà définie.Provides a value for any XAMLXAML property attribute by looking up a reference to an already defined resource. Comportement de recherche pour cette ressource est analogue à la recherche au moment du chargement, ce qui va rechercher les ressources qui ont été précédemment chargées à partir du balisage de l’actuel XAMLXAML page ainsi que d’autres sources d’application et générera cette valeur de ressource en tant que le valeur de propriété dans les objets d’exécution.Lookup behavior for that resource is analogous to load-time lookup, which will look for resources that were previously loaded from the markup of the current XAMLXAML page as well as other application sources, and will generate that resource value as the property value in the run-time objects.

Utilisation d'attributs XAMLXAML Attribute Usage

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

Utilisation d'éléments objet XAMLXAML Object Element Usage

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

Valeurs XAMLXAML Values

key Clé pour la ressource demandée.The key for the requested resource. Cette clé a été initialement affectée par le Directive x : Key si une ressource a été créée dans le balisage ou a été fournie comme le key paramètre lors de l’appel ResourceDictionary.Add si la ressource a été créée dans le code.This key was initially assigned by the x:Key Directive if a resource was created in markup, or was provided as the key parameter when calling ResourceDictionary.Add if the resource was created in code.

NotesRemarks

Important

Un StaticResource ne devez pas tenter de créer une référence vers l’avant à une ressource qui est définie lexical dans le XAMLXAML fichier.A StaticResource must not attempt to make a forward reference to a resource that is defined lexically further within the XAMLXAML file. Toute tentative n’est pas pris en charge, et même si une telle référence n’échoue pas, une tentative de référence vers l’avant entraînera une altération des performances charge temps lorsque les tables de hachage interne représentant un ResourceDictionary sont recherchés.Attempting to do so is not supported, and even if such a reference does not fail, attempting the forward reference will incur a load time performance penalty when the internal hash tables representing a ResourceDictionary are searched. Pour de meilleurs résultats, ajustez la composition de vos dictionnaires de ressources de manière à éviter les références vers l’avant.For best results, adjust the composition of your resource dictionaries such that forward references can be avoided. Si vous ne pouvez pas éviter une référence vers l’avant, utilisez Extension de balisage DynamicResource à la place.If you cannot avoid a forward reference, use DynamicResource Markup Extension instead.

Spécifié ResourceKey doit correspondre à une ressource existante, identifiée par un Directive x : Key à un certain niveau dans votre page, application, thèmes de contrôle disponibles et ressources externes ou ressources système.The specified ResourceKey should correspond to an existing resource, identified with an x:Key Directive at some level in your page, application, the available control themes and external resources, or system resources. La recherche de ressource se produit dans cet ordre.The resource lookup occurs in that order. Pour plus d’informations sur le comportement de recherche de ressources pour les ressources statiques et dynamiques, consultez XAML ressources.For more information about resource lookup behavior for static and dynamic resources, see XAML Resources.

Une clé de ressource peut être n’importe quelle chaîne définie dans le XamlName, grammaire.A resource key can be any string defined in the XamlName Grammar. Une clé de ressource peut être également les autres types d’objets, comme un Type.A resource key can also be other object types, such as a Type. Un Type clé est essentielle à la façon dont styles peuvent leur être par des thèmes, via une clé de style implicite.A Type key is fundamental to how controls can be styled by themes, through an implicit style key. Pour plus d’informations, consultez Vue d’ensemble de la création de contrôles.For more information, see Control Authoring Overview.

L’autre moyen déclaratif de référencement d’une ressource est comme un Extension de balisage DynamicResource.The alternative declarative means of referencing a resource is as a DynamicResource Markup Extension.

La syntaxe d’attribut est la syntaxe la plus couramment utilisée avec cette extension de balisage.Attribute syntax is the most common syntax used with this markup extension. 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.The string token provided after the StaticResource identifier string is assigned as the ResourceKey value of the underlying StaticResourceExtension extension class.

StaticResource peut être utilisé dans la syntaxe d’élément objet.StaticResource can be used in object element syntax. Dans ce cas, en spécifiant la valeur de la ResourceKey propriété est requise.In this case, specifying the value of the ResourceKey property is required.

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 :StaticResource can also be used in a verbose attribute usage that specifies the ResourceKey property as a property=value pair:

<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.The verbose usage is often useful for extensions that have more than one settable property, or if some properties are optional. StaticResource ne comportant qu'une seule propriété définissable (obligatoire), cette utilisation en clair n'est pas classique.Because StaticResource has only one settable property, which is required, this verbose usage is not typical.

Dans le WPFWPF XAMLXAML implémentation du processeur, la gestion de cette extension de balisage est définie par le StaticResourceExtension classe.In the WPFWPF XAMLXAML processor implementation, the handling for this markup extension is defined by the StaticResourceExtension class.

StaticResource est une extension de balisage.StaticResource is a markup extension. 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.Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than just putting type converters on certain types or properties. Toutes les extensions de balisage XAMLXAML utilisent les caractères { et } dans leur syntaxe d’attribut, convention selon laquelle un processeur XAMLXAML reconnaît qu’une extension de balisage doit traiter l’attribut.All markup extensions in XAMLXAML use the { and } characters in their attribute syntax, which is the convention by which a XAMLXAML processor recognizes that a markup extension must process the attribute. Pour plus d’informations, consultez Extensions de balisage et XAML WPF.For more information, see Markup Extensions and WPF XAML.

Voir aussiSee also