UWP IoT как добавить свой шрифт - PullRequest
       10

UWP IoT как добавить свой шрифт

0 голосов
/ 01 сентября 2018

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

Я добавил шрифты в свой проект

enter image description here

Это появляется в моих дизайнерских видах

enter image description here

Шрифт, открытый в Windows (для проверки названия шрифта):

enter image description here

Но когда я ссылаюсь на них, они все еще не используются в моем приложении. Я пробовал следующие синтаксисы

<TextBlock 
    Grid.Column="1" 
    Text="{x:Bind Text}"
    FontFamily="ms-appx:///Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto Light"/>

Или, как дизайнер заполняет, когда я выбираю шрифт в конструкторе

<TextBlock 
    Grid.Column="1" 
    Text="{x:Bind Text}"
    FontFamily="Delphi-Soleto Light"/>

Или как этот сайт предлагает

<TextBlock 
    Grid.Column="1" 
    Text="{x:Bind Text}"
    FontFamily="/Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto Light"/>

Помощь очень ценится ...!

Загружен репозиторий GIT в:

https://github.com/basprins/CustomFontWinIot

Я пытаюсь использовать шрифт Delphi в BulletText.xaml:

    <TextBlock 
        Grid.Column="1" 
        Margin="0, 13, 0, 0"
        Style="{StaticResource Normal}" 
        Text="{x:Bind Text}"
        FontFamily="{StaticResource DefaultFont}"/>

Я добавил элемент управления BulletText на главную страницу, которая будет видна сразу после запуска приложения.

Обновить git repo пустым приложением, которое ссылается на шрифты, которые не отображаются

На моем ПК я не установил шрифты в Windows. Я просто добавил их в проект. Код см. Страницу GitHub. Снимок экрана конструктора

enter image description here

Ответы [ 3 ]

0 голосов
/ 03 сентября 2018

Не следует использовать индекс веса шрифта в свойстве FontFamily для ссылки на файл шрифта. Если вам нужно установить вес шрифта, вы можете установить FontWeight свойства TextBlock . Попробуйте это:

<StackPanel>
    <!--Don't add "Light" in the FontFamily-->
    <TextBlock FontFamily="ms-appx:///Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto"
               Text="Hello world, this is my test"/>
    <!--Don't add "Thin" in the FontFamily-->
    <TextBlock FontFamily="ms-appx:///Assets/Delphi-Soleto_Th.ttf#Delphi-Soleto"
               Text="Hello world, this is my test"/>
    <!--This is the default font family, set the FontWeight property-->
    <TextBlock Text="Hello world, this is my test" FontWeight="Normal"/>
</StackPanel>

Вот эффект:

enter image description here

0 голосов
/ 04 сентября 2018

Моя самая большая борьба в winiot / UWP до сих пор ... но здесь идет ...

Несколько соображений о ком-то еще, кто вырывает свои волосы.

Прежде всего, это возможно. Но многие веб-сайты рассказывают вам другую историю, которая усложняет и без того сложную функцию imho.

Шаги, которые необходимо выполнить для визуализации шрифта на вашем устройстве iot:

Добавьте шрифты к вашему проекту

Очевидный первый шаг, который вам скажет большинство сайтов. Несколько замечаний, хотя.

  • Неважно, где вы храните шрифты. Они могут находиться в / Активы, / Шрифты, / Активы / Шрифты, / Ресурсы или все, что вы предпочитаете.
  • Вам НЕ нужно беспокоиться о copy to output. Неважно, как вы это определяете.
  • Вам нужно оставить действие сборки на Content. Это значение по умолчанию, так что вам не нужно об этом беспокоиться.

Обратитесь к фамилии шрифта

Может быть ужасно определить правильное имя шрифта. Соглашение заключается в следующем [путь к файлу fontfamily] # [имя семейства шрифтов].

Примером может быть:

Assets/Delphi-Soleto_Lt.ttf#Delphi-Soleto

или в полном xaml:

<TextBlock FontFamily="Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />

Неважно, будете ли вы ссылаться на путь с синтаксисом msappx, все следующие определения будут работать:

<TextBlock FontFamily="Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />

<TextBlock FontFamily="/Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />

<TextBlock FontFamily="ms-appx:///Fonts/Delphi-Soleto_Lt.ttf#Delphi-Soleto" Text="This is Delphi Soleto Light" />
Название шрифта

Тогда большой, название шрифта. Важно знать, что стиль шрифта должен быть УДАЛЕН из названия шрифта. Таким образом, например

  • Файл 'Delphi-Soleto_Blk.ttf' с именем шрифта Delphi-Soleto Light становится Delphi-Soleto
  • Файл 'Delphi-Soleto_Blk.ttf' с именем шрифта Delphi-Soleto Black становится Delphi-Soleto
  • Файл 'Delphi-Soleto_A_Blk.ttf' с именем шрифта Delphi-Soleto App Black становится Delphi-Soleto App

Чтобы сэкономить ваши часы на догадках, как я начал, есть инструмент, который может вам здесь помочь. Будьте осторожны с программой просмотра шрифтов Windows, так как она может не показать вам, что вам нужно увидеть. Загрузите бесплатную программу просмотра шрифтов dp4 .

Если вы откроете программу просмотра шрифтов dp4 и найдете папку, в которой хранятся ваши шрифты, вы увидите правильное имя шрифта. Обратите внимание на название семейства шрифтов на скриншоте ниже.

enter image description here

Проверить текст нужным шрифтом

И последнее, но не менее важное: некоторые веб-сайты утверждают, что дизайнер xaml мгновенно покажет текст шрифтом, который будет легко протестировать. Это НЕ делает это на моей стороне. В конечном итоге мне помогло развертывание моего приложения на моей цели (в моем случае RPI) и изменение XAML во время работы приложения в отладчике. Эти изменения мгновенно отражаются в вашем запущенном приложении.

Наконец-то я смог посмотреть на экран и увидеть визуализированные мои шрифты

enter image description here

Я надеюсь, что это кто-то там! Особая благодарность Бриз Лю, которая нашла время, чтобы помочь мне!

0 голосов
/ 02 сентября 2018

Один из способов использования нестандартного шрифта в вашем приложении UWP определяется в App.xaml :

1 - Создайте папку в корневом каталоге вашего проекта и назовите ее "Шрифты"

2 - выберите пользовательские шрифты, затем нажмите F4 и установите Копировать в каталог вывода на Копировать всегда

3 - В App.xaml file> Application.Resources tag> ResourceDictionary tag, добавьте следующий код:

<FontFamily x:Key="DefaultFont">/Fonts/(Your FontName).ttf#(Font Title)</FontFamily>

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

<TextBlock Text="Your Sample Text" FontFamily="{StaticResource DefaultFont}"></TextBlock>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...