DynamicResource, extension de balisageDynamicResource Markup Extension

Fournit une valeur pour tout XAMLXAML attribut de propriété en différant cette valeur pour être une référence à une ressource définie.Provides a value for any XAMLXAML property attribute by deferring that value to be a reference to a defined resource. Le comportement de recherche pour cette ressource est analogue à la recherche au moment de l’exécution.Lookup behavior for that resource is analogous to run-time lookup.

Utilisation d'attributs XAMLXAML Attribute Usage

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

Utilisation des éléments de propriété XAMLXAML Property Element Usage

<object>  
  <object.property>  
    <DynamicResource 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

Un DynamicResource créera une expression temporaire pendant la compilation initiale et donc diffèrera la recherche des ressources jusqu'à ce que la valeur de la ressource demandée est réellement nécessaire pour construire un objet.A DynamicResource will create a temporary expression during the initial compilation and thus defer lookup for resources until the requested resource value is actually required in order to construct an object. Cela peut potentiellement être après le XAMLXAML page est chargée.This may potentially be after the XAMLXAML page is loaded. La valeur de ressource est trouvée en fonction de recherche de clé par rapport à tous les dictionnaires de ressources actif à partir de la portée de page actuelle et est remplacée par l’expression d’espace réservé à partir de la compilation.The resource value will be found based on key search against all active resource dictionaries starting from the current page scope, and is substituted for the placeholder expression from compilation.

Important

En termes de priorité de propriété de dépendance, un DynamicResource expression est équivalente à la position où la référence de ressource dynamique est appliquée.In terms of dependency property precedence, a DynamicResource expression is equivalent to the position where the dynamic resource reference is applied. Si vous définissez une valeur locale pour une propriété qui avait précédemment un DynamicResource expression en tant que la valeur locale, le DynamicResource est totalement supprimé.If you set a local value for a property that previously had a DynamicResource expression as the local value, the DynamicResource is completely removed. Pour plus d’informations, consultez Priorité de la valeur de propriété de dépendance.For details, see Dependency Property Value Precedence.

Certains scénarios d’accès aux ressources sont particulièrement appropriés pour DynamicResource par opposition à un Extension de balisage StaticResource.Certain resource access scenarios are particularly appropriate for DynamicResource as opposed to a StaticResource Markup Extension. Consultez XAML ressources pour une discussion sur les implications en matière de performances de leurs avantages relatifs respectifs DynamicResource et StaticResource.See XAML Resources for a discussion about the relative merits and performance implications of DynamicResource and StaticResource.

Spécifié ResourceKey doit correspondre à une ressource existante déterminée par Directive x : Key à un certain niveau dans votre page, application, thèmes de contrôle disponibles et ressources externes ou les ressources système et le recherche de ressources aura lieu dans cet ordre.The specified ResourceKey should correspond to an existing resource determined by x:Key Directive at some level in your page, application, the available control themes and external resources, or system resources, and the resource lookup will happen in that order. Pour plus d’informations sur la recherche de ressources pour les ressources statiques et dynamiques, consultez XAML ressources.For more information about resource lookup 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 may 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 may 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.A Type key is fundamental to how controls can be styled by themes. Pour plus d’informations, consultez Vue d’ensemble de la création de contrôles.For more information, see Control Authoring Overview.

APIAPIs pour la recherche de valeurs de ressources, telles que FindResource, suivent la même logique de recherche de ressources que celles utilisées par DynamicResource.for lookup of resource values, such as FindResource, follow the same resource lookup logic as used by DynamicResource.

L’autre moyen déclaratif de référencement d’une ressource est comme un Extension de balisage StaticResource.The alternative declarative means of referencing a resource is as a StaticResource 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 DynamicResource est assigné en tant que valeur ResourceKey de la classe d’extension DynamicResourceExtension sous-jacente.The string token provided after the DynamicResource identifier string is assigned as the ResourceKey value of the underlying DynamicResourceExtension extension class.

DynamicResource peut être utilisé dans la syntaxe d’élément objet.DynamicResource 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.

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

<object property="{DynamicResource 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. DynamicResource ne comportant qu'une seule propriété définissable (obligatoire), cette utilisation en clair n'est pas classique.Because DynamicResource 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 DynamicResourceExtension classe.In the WPFWPF XAMLXAML processor implementation, the handling for this markup extension is defined by the DynamicResourceExtension class.

DynamicResource est une extension de balisage.DynamicResource 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