Dans WPF, comment puis-je référencer une ressource statique définie dans un fichier XAML différent? C'est dans le même projet.Dans WPF, comment puis-je référencer une ressource statique définie dans un fichier XAML différent?
Q
Dans WPF, comment puis-je référencer une ressource statique définie dans un fichier XAML différent?
7
A
Répondre
8
L'autre fichier XAML doit être un dictionnaire de ressources. Vous le fusionnez dans le fichier en cours à l'aide de la propriété MergedDictionaries du ResourceDictionary en cours. Voir Merged Resource Dictionaries sur MSDN. Leur exemple:
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="myresourcedictionary.xaml"/>
<ResourceDictionary Source="myresourcedictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
Ensuite, dans cet objet de page, vous pouvez référencer des ressources statiques définies dans myresourcedictionary.xaml
ou myresourcedictionary2.xaml
.
3
« différent fichier XAML » pourrait signifier quelques choses différentes:
- App.xaml: Les ressources sont automatiquement inclus dans l'arborescence des ressources de tout ce qui est ouvert de sorte que vous n'avez pas besoin de faire quoi que ce soit de plus.
- Fenêtre ou Page .xaml: Les ressources peuvent être accessibles par n'importe quel enfant d'une instance de l'objet comme un UserControl qui est utilisé dans une fenêtre.
- ResourceDictionary: Doit être fusionné explicitement dans l'arbre de ressources quelque part au-dessus de l'endroit où il est utilisé. Cela peut être App.xaml, Windowxx.xaml ou un élément de niveau inférieur. Utilisez ResourceDictionary.MergedDictionaries pour cela.
Il y a aussi beaucoup de façons alternatives pour spécifier le chemin mais c'est la plus simple:
<Window>
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/MyResourceDict.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>