2015-04-15 2 views
2

У меня есть сборка, которая определяет стили и некоторые элементы управления для приложения WPF. В этой сборке у меня есть ResourceDictionary, который указывает шрифт по умолчанию для использования другими элементами управления и стилями в сборке.WPF custom FontFamily от сборки?

<FontFamily x:Key="DefaultFontFamily">Segoe UI</FontFamily> 
<sys:Double x:Key="DefaultFontSize">15</sys:Double> 

То, что я хотел бы сделать, это изменить DefaultFontFamily к самодельному шрифту, который связан (не встроенный) с узлом.

Я создал папку «Ресурсы» в проекте и скопировал там специальный шрифт. Я установил 'Build Action' шрифта в 'Content' и 'Copy to Output Directory' в 'Copy if newer'.

Проект является частью решения, содержащего другой проект, который использует стили в сборке, поэтому, когда решение построено, шрифты копируются как ожидалось. Однако я не могу указать правильную папку для ссылки на шрифты.

Что работает:

<FontFamily x:Key="DefaultFontFamily">C:\code\Solution\Project\bin\Debug\Resources\Lobster-Regular.ttf#Lobster</FontFamily> 
<FontFamily x:Key="DefaultFontFamily">file:///c:/code/Solution/Project/bin/Debug/Resources/Lobster-Regular.ttf#Lobster</FontFamily> 

Здесь 'Project' это имя проекта запуска (исполняемый файл), который ссылается на стили сборки.

Что не работает:

<FontFamily x:Key="DefaultFontFamily">\Resources\Lobster-Regular.ttf#Lobster</FontFamily> 
<FontFamily x:Key="DefaultFontFamily">.\Resources\Lobster-Regular.ttf#Lobster</FontFamily> 
<FontFamily x:Key="DefaultFontFamily">/Resources/#Lobster</FontFamily> 
<FontFamily x:Key="DefaultFontFamily">./Resources/#Lobster</FontFamily> 

Я также попытался установить содержание шрифта, как 'Ресурс' и 'Embedded Resource' и попытался это:

<FontFamily x:Key="DefaultFontFamily">pack://application:,,,/Resources/Lobster.ttf#Lobster</FontFamily> 

Это тоже не сработало. documentation говорит, что я должен уметь использовать:

Строка, указывающая папку, содержащую шрифт, а также фамилию шрифта. Имя папки и шрифта ограничено символом #. Ссылка на папку может быть абсолютной или относительной. Например, «Пользовательские шрифты \ #My Custom Font».

Что я делаю неправильно?

+0

насчет пакета: // Применение: ,,,/[YourAssembly]; компонент/Resources/Lobster.ttf # Lobster»и сделать не забудьте вставить [YourAssembly] - не уверен, что он сделает трюк –

ответ

2

Поставь параметры шрифта файла как "Ресурс" и "Копировать если новее"

+0

СПАСИБО! Вы только что ответили на мой вопрос https://stackoverflow.com/questions/46601790/xaml-using-fonts-from-resource-dictionary- из-другой сборки –