J'ai des fichiers de dictionnaire de ressources (MenuTemplate.xaml, ButtonTemplate.xaml, etc.) que je souhaite utiliser dans plusieurs applications distinctes. Je pourrais les ajouter aux assemblys des applications, mais c'est mieux si je compile ces ressources dans un seul assemblage et que mes applications y font référence, non?
Une fois l'assembly de ressource créé, comment puis-je le référencer dans le fichier App.xaml de mes applications? Actuellement, j'utilise ResourceDictionary.MergedDictionaries pour fusionner les fichiers de dictionnaire individuels. Si je les ai dans un assemblage, comment puis-je les référencer dans xaml?
.net
wpf
xaml
controltemplate
resourcedictionary
Gus Cavalcanti
la source
la source
Réponses:
Découvrez la syntaxe URI du pack . Vous voulez quelque chose comme ça:
la source
AppDomain.AssemblyResolve
pour l'aider à trouver l'assembly.Un exemple, juste pour en faire une réponse de 15 secondes -
Supposons que vous ayez "styles.xaml" dans une bibliothèque WPF nommée "common" et que vous souhaitiez l'utiliser à partir de votre projet d'application principal:
À votre santé
la source
Je travaille avec .NET 4.5 et je n'ai pas pu faire fonctionner cela ... J'utilisais WPF Custom Control Library. Cela a fonctionné pour moi à la fin ...
source: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/11a42336-8d87-4656-91a3-275413d3cc19
la source
DLL de ressources uniquement est une option pour vous. Mais ce n'est pas obligatoire, sauf si vous souhaitez modifier les ressources sans recompiler les applications. Avoir un seul fichier ResourceDictionary commun est également une option. Cela dépend de la fréquence à laquelle vous changez de ressources, etc.
MyAssembly - Juste le nom de l'assembly sans extension
FolderStructureInAssembly - Si vos ressources sont dans un répertoire, spécifiez la structure du dossier
Lorsque vous faites cela, il est préférable de connaître également siteOfOrigin .
la source
Pour UWP:
la source
Utilisation de XAML:
Si vous connaissez l'autre
assembly
structure et souhaitez le coderesources
en c # , utilisez le code ci-dessous:Sortie: si nous voulons utiliser le
ResourceDictionary
RD1.xaml
projetWpfControlLibrary1
dans leStackOverflowApp
projet.Structure des projets :
Dictionnaire de ressources:
Sortie de code:
PS: Tous les
ResourceDictionary
fichiers doivent avoirBuild Action
comme 'Resource
' ou 'Page
'.Utilisation de C #:
la source