Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Fournit une valeur pour n’importe quel attribut de propriété XAML en reportant cette valeur comme référence à une ressource définie. Le comportement de recherche de cette ressource est analogue à la recherche au moment de l’exécution.
Utilisation des attributs XAML
<object property="{DynamicResource key}" ... />
Utilisation de l’élément de propriété XAML
<object>
<object.property>
<DynamicResource ResourceKey="key" ... />
</object.property>
</object>
Valeurs XAML
Valeur | Descriptif |
---|---|
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
Une DynamicResource
expression temporaire est créée pendant la compilation initiale et différera donc la recherche des ressources jusqu’à ce que la valeur de ressource demandée soit réellement requise pour construire un objet. Cela peut être une fois la page XAML chargée. La valeur de la ressource sera trouvée en fonction de la recherche par clé sur tous les dictionnaires de ressources actifs en commençant par l’étendue de la page en cours, et est substituée à l’expression de substitution issue de la compilation.
Important
En termes de précédence de propriété de dépendance, une DynamicResource
expression équivaut à la position où la référence de ressource dynamique est appliquée. Si vous définissez une valeur locale pour une propriété qui avait précédemment une DynamicResource
expression comme valeur locale, la DynamicResource
valeur est complètement supprimée. Pour plus d’informations, consultez Priorité de la valeur de propriété de dépendance.
Certains scénarios d’accès aux ressources sont particulièrement appropriés plutôt que l’utilisation d'une DynamicResource
. Consultez les ressources XAML pour une discussion sur les mérites relatifs et les implications relatives aux performances de DynamicResource
et StaticResource
.
L’élément ResourceKey spécifié doit correspondre à une ressource existante déterminée par la 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, et la recherche de ressources se produit dans cet ordre. Pour plus d’informations sur la 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 mis en forme par thèmes. Pour plus d’informations, consultez Vue d’ensemble de la création de contrôles.
Les API pour la recherche de valeurs des ressources, telles que FindResource, suivent la même logique de recherche de ressources que celle utilisée par DynamicResource
.
L’autre moyen déclaratif de référencer une ressource est une extension staticResource Markup.
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'identificateur DynamicResource
est assigné comme valeur ResourceKey de la classe d'extension DynamicResourceExtension sous-jacente.
DynamicResource
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.
DynamicResource
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="{DynamicResource 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.
DynamicResource
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 classe DynamicResourceExtension.
DynamicResource
est une extension de balisage. Les extensions de balisage sont généralement implémentées lorsqu'il est nécessaire d'empêcher que les valeurs d'attributs ne soient uniquement des valeurs littérales ou des noms de gestionnaires, et lorsque cette exigence est plus générale que de simplement installer des 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 les extensions de balisage et le XAML WPF.
Voir aussi
.NET Desktop feedback