Je suis en train de créer une application qui utilise ResourceDictionaries
d'autres assemblages et j'ai des problèmes avec l'utilisation des polices.XAML - Utilisation des polices du dictionnaire de ressources d'un autre assembly
Il existe un assembly nommé MyFontAssembly qui stocke les polices avec leurs références sous la forme ResourceDictionary
. La structure de celui-ci se présente comme suit:
MyFontAssembly
- FontDictionary.xaml - (stores references to fonts)
- Fonts
- FontA.ttf
- FontB.ttf
...
Il y a aussi une autre assemblée qui stocke ResourceDictionaries
pour les commandes de style et il est appelé MyStylesAssembly. Les ResourceDictionaries de MyStylesAssembly sont ensuite fusionnées dans un App.xaml d'une application afin de fournir des styles réutilisables.
Le problème est que mes styles ne reconnaît les ressources de police (le code ne s'écraser parce qu'il n'a pas pu trouver la ressource par sa clé), mais il semble que les polices stockées sous forme de fichiers TTF ne sont pas appliqués.
J'ai essayé ce qui suit dans mon FontDictionary.xaml
, mais rien de tout cela fonctionne:
<FontFamily x:Key="MyFontKey">Fonts/#MyFontName</FontFamily>
<FontFamily x:Key="MyFontKey">pack://application:,,,/MyFontAssemblyName;Component/Fonts/#MyFontName</FontFamily>
<FontFamily x:Key="MyFontKey">/MyFontAssemblyName;Component/Fonts/#MyFontName</FontFamily>
<FontFamily x:Key="MyFontKey">pack://application:,,,/Fonts/#MyFontName</FontFamily>
REMARQUE:
- Je suis sûr que mes polices forment le travail de TTF et sont correctement nommés . J'utilisais l'implémentation
<FontFamily x:Key="MyFontKey">Fonts/#MyFontName</FontFamily>
dans le seul projet exe avec la même structure et tout allait bien, le problème est apparu quand j'ai divisé l'implémentation en quelques assemblages, comme je l'ai décrit, lors du refactoring. MyFontAssembly
est fusionné correctement dansMyStylesAssembly
. Je l'appelle juste par ce nom ici, dans le code réel, il a aussi un peu plusResourceDictionaries
qui sont utilisés correctement parMyStylesAssembly
. Le problème semble être avec seulement les balises<FontFamily>
ne reconnaissant pas les fichiers ttf.MyFontAssembly
etMyStylesAssembly
sont des projets de tyleClassLibrary
et ne contient pas de code autre que dansResourceDictionaries
(pas de classes ou code derrière)
Utilisez-vous la refrence correcte. U besoin de référencer les conventions de document du package XAML URI si cela ne fonctionne pas – Ramankingdom
Je n'utilise probablement pas la méthode correcte pour référencer les polices, mais je ne sais pas quelle est la bonne manière de le faire (c'est un peu ma question, ici). –
Mettre à jour l'exemple avec l'exemple – Ramankingdom