2012-03-11 2 views
2

Я пытаюсь использовать некоторые пользовательские шрифты в своем приложении WP7.WP7 - Не собирать встроенные шрифты

Я следовал примеру в соответствии с http://www.jeffblankenburg.com/2010/10/24/31-days-of-windows-phone-day-24-embedding-fonts/, но в моем проекте он просто не подберет пользовательский шрифт. Я загрузил образец проекта в этом примере, и этот работает хорошо.

Итак, теперь я использовал тот же шрифт, что и в моем проекте. Я заверил, что свойства на файле идентичны (Build Action = «Content» и Copy To Output Directory = «Всегда»)

я использовал в моем XAML точно таким же образом, т.е.

FontFamily="Fonts/DigitalDream.ttf#Digital Dream" FontSize="24" 

Но безрезультатно. Пользовательский шрифт просто игнорируется. Есть ли что-то, что мне не хватает, или настройка .. все, что позволит этому работать в одном проекте, но не в другом?

Я обнаружил, что он будет работать, если моя страница XAML определена на корневом уровне, то есть непосредственно под проектом, но в моем случае я имею ее в папке «Представления».

Мое понимание было то, что FontFamily = "/ Fonts/DigitalDream.ttf # Digital Dream" FontSize = "24"

должны начать в корневой папке проекта?

  • благодаря

ответ

4

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

Вы на правильном пути. Шрифт .ttf должен быть встроен. Трудно получить правильную комбинацию путей и имен файлов, чтобы заставить шрифт работать.

Самый простой способ, который я нашел для обработки некоторых из этих более сложных типов «магической струны» в XAML, - это позволить Expression Blend сделать тяжелый подъем.

blog post об использовании Blend для встраивания шрифтов. Самое приятное в использовании Blend заключается в том, что он дает вам некоторые визуальные указания на правильность настройки вещей - т. Е. вы можете увидеть нужный шрифт в меню выбора шрифта. Это то, что в конце концов привело меня в проблему .otf. Я не мог видеть шрифт в Blend.

А вот пример самодельного шрифта, который я использовал в одном из моих приложений:

<TextBlock Name="MyTextblock" 
    FontFamily="/MyAppName;component/fonts/Fonts.zip#Segoe UI Mono"> 

Это FontFamily URI является боль, чтобы получить право. Я уверен, что это твоя проблема.

+0

Да - спасибо - я уверен, что вы на правильном пути .. и я обновил запрос. Проблема в том, какой путь я должен использовать. Я попробовал несколько комбинаций, основанных на том, что я прочитал ... но не радости. – Peter

+0

Вы пытались использовать префикс '/ MyAppName; component /'? Это приведет вас в корневой каталог. Хороший улов, заметивший, что он работает на страницах на корневом уровне, между прочим. –

+0

да - я пробовал это ... но все равно не ушел. – Peter

0

У меня была такая же проблема. Я следил за всем до точки, и все же я не смог вставить один конкретный шрифт. Поэтому я создал новый проект и попробовал встроить туда шрифт. Еще не повезло. Затем я попытался внедрить другой шрифт. И вот, как только я набрал атрибут FontFamily, я понял, что он встроен. Это было особенно странно, так как мне не пришлось менять какие-либо свойства шрифта.

Я открыл проект в Blend и щелкнул по прямоугольнику шрифта справа.Это заняло несколько секунд, а затем встроило шрифт, с которым у меня были проблемы, в первую очередь.