2016-05-04 5 views
0

Я пытаюсь получить доступ к шрифту, который находится в папке ресурсов в моем проекте. В настоящее время у меня есть ресурс семейства шрифтов:Шрифт Семейный ресурс из локальных ресурсов

<FontFamily x:Key="FontFamilyNormal">Resources/#Bank Gothic Medium</FontFamily> 

Это не работает, чтобы отобразить этот шрифт, когда я ссылаюсь на этот ресурс. Когда я удаляю «Ресурсы/#» и просто использую Bank Gothic Medium, он работает, но я считаю, что он обращается к шрифту из моей ОС, а не из папки ресурсов, откуда я хочу получить к ней доступ. Есть ли способ получить доступ к файлу шрифтов из моей папки ресурсов с помощью ресурса FontFamily?

+0

Я попытался с помощью пакета URI, но это не сработало: ' пакет: // Применение: ,,,/Resources/Bank Gothic Medium.ttf' – admiral142

ответ

0

Существуют правила встраивания шрифтов в приложение, и для встраивания поддерживаются только шрифты, соответствующие критериям.

  • Шрифт должен быть TrueType шрифтов (.ttf)
  • Шрифт должен быть лицензирован для использования таким образом.
  • Действие сборки файла .ttf должно быть «Ресурс»

Я хотел бы предложить тестирование шрифта непосредственно на TextBlock перед созданием ресурса из него.

Первое, что нужно попробовать это абсолютный путь шрифта, как это:

<TextBlock FontFamily="file:///d:/MyProjects/Project/Resources#Bank Gothic Medium">Test</TextBlock> 

Если это работает, то можно попробовать канав полный путь:

<TextBlock FontFamily="./Resources/Resources#Bank Gothic Medium">Test</TextBlock> 

Примечание: ./resources/ ISN» t каталог, но особый путь. Вы можете использовать путь, но путь будет относиться к элементу управления, на котором он используется, и нет хорошего способа добраться до корня проекта.

Наконец-то есть URL-адрес пакета, который должен работать лучше всего повсюду. Это будет выглядеть следующим образом:

<TextBlock FontFamily="pack://application:,,,/Fonts/#Bank Gothic Medium">Test</TextBlock> 

Note: In this last one we used the actual directory for where the font will be.

Похоже, ваш довольно близко!

+0

Nate, в вашем окончательном утверждении, единственное, что показывает, - «Тест». Это намеренно? – admiral142

Смежные вопросы