我正在構建使用另一個程序集的ResourceDictionaries
的應用程序,並且遇到使用字體的問題。XAML - 使用來自另一個程序集的資源字典中的字體
有一個名爲的程序集,MyFontAssembly將字體和引用存儲爲ResourceDictionary
。它的結構如下所示:
MyFontAssembly
- FontDictionary.xaml - (stores references to fonts)
- Fonts
- FontA.ttf
- FontB.ttf
...
還有,對於造型的控制存儲ResourceDictionaries
另一個組件,這就是所謂MyStylesAssembly。然後,將來自MyStylesAssembly的ResourceDictionaries合併到應用程序的App.xaml中,以提供可重用的樣式。
的問題是,我的風格不認識的字體資源(代碼沒有崩潰,因爲它不能找到它的關鍵資源),但它看起來像存儲爲未應用的ttf文件字體。
我試圖在我的FontDictionary.xaml
以下,但沒有它的工作原理:
<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>
注:
- 我相信,我的字體形成TTF工作和正確命名。我在具有相同結構的單個exe項目中使用了
<FontFamily x:Key="MyFontKey">Fonts/#MyFontName</FontFamily>
實現,並且一切都很好,當我將實現拆分爲幾個程序集時,就像我所描述的那樣,在重構期間出現問題。 MyFontAssembly
正確合併在MyStylesAssembly
中。我只是在這裏用這個名稱來稱呼它,在實際的代碼中,它還有一些ResourceDictionaries
,它們被MyStylesAssembly
正確使用。這個問題似乎只與<FontFamily>
標籤不能識別ttf文件。MyFontAssembly
和MyStylesAssembly
是tyleClassLibrary
的項目和不包含比其他ResourceDictionaries
任何代碼(沒有類或後面代碼)
你使用了正確的refrence。如果不工作,需要引用XAML URI包文檔約定 – Ramankingdom
我很可能不使用正確的方式來引用字體,但我不知道什麼是正確的方式來做到這一點(這是我的問題,在這裏)。 –
更新示例 – Ramankingdom