Partager via


Extension de balisage {CustomResource}

Fournit une valeur pour n’importe quel attribut XAML en évaluant une référence à une ressource provenant d’une implémentation personnalisée de recherche de ressources. La recherche de ressources est effectuée par une implémentation de classe CustomXamlResourceLoader.

Utilisation des attributs XAML

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

Valeurs XAML

Terme Description
key Clé pour la ressource demandée. La façon dont la clé est initialement affectée est spécifique à l’implémentation de la classe CustomXamlResourceLoader actuellement inscrite à des fins d’utilisation.

Notes

CustomResource est une technique permettant d’obtenir des valeurs définies ailleurs dans un référentiel de ressources personnalisé. Cette technique est relativement avancée et n’est pas utilisée par la plupart des scénarios d’application Windows Runtime.

La façon dont customResource se résout dans un dictionnaire de ressources n’est pas décrite dans cette rubrique, car cela peut varier largement en fonction de la façon dont CustomXamlResourceLoader est implémenté.

La méthode GetResource de l’implémentation CustomXamlResourceLoader est appelée par l’analyseur XAML Windows Runtime chaque fois qu’il rencontre une {CustomResource} utilisation dans le balisage. L’ID de ressource passé à GetResource provient de l’argument clé , et les autres paramètres d’entrée proviennent du contexte, comme la propriété à laquelle l’utilisation est appliquée.

Une {CustomResource} utilisation ne fonctionne pas par défaut (l’implémentation de base de GetResource est incomplète). Pour effectuer une référence valide {CustomResource} , vous devez effectuer chacune des étapes suivantes :

  1. Dérivez une classe personnalisée de CustomXamlResourceLoader et remplacez la méthode GetResource. N’appelez pas la base dans l’implémentation.
  2. Définissez CustomXamlResourceLoader.Current pour référencer votre classe dans la logique d’initialisation. Cela doit se produire avant que n’importe quel CODE XAML au niveau de la page qui inclut l’utilisation de l’extension {CustomResource} soit chargé. L’un des emplacements où définir CustomXamlResourceLoader.Current se trouve dans le constructeur de sous-classe Application qui est généré pour vous dans les modèles code-behind App.xaml.
  3. Vous pouvez maintenant utiliser des {CustomResource} extensions dans le code XAML que votre application charge en tant que pages ou à partir de dictionnaires de ressources XAML.

CustomResource 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.