Как установить глобальный пользовательский шрифт в App.xaml

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

<FontFamily x:Key="MetricWebRegular">
                ms-appx:///Assets/Fonts/MetricWeb-Regular.ttf#Metric Web
</FontFamily>

Я вызываю это, добавляя его к установщику стилей в текстовом поле.


person astropringles    schedule 15.08.2016    source источник
comment
Я также хотел бы знать, есть ли способ настроить глобальный пользовательский шрифт.   -  person AVK    schedule 15.08.2016


Ответы (1)


Это то, о чем я думал, но это не работает.

Трудно понять, что здесь происходит не так, просто опирайтесь на свой код, он должен работать. Во-первых, у меня нет вашего ресурса шрифтов, я скачал его из Интернета и протестировал вот так:

<Application.Resources>
    <FontFamily x:Key="MetricWebRegular">ms-appx:///Assets/Blambot-Custom.ttf#Blambot Custom</FontFamily>
</Application.Resources>

затем используйте этот ресурс в установщике стилей в текстовом поле:

<Page.Resources>
    <Style x:Key="TextBoxStyle" TargetType="TextBox">
        ...
        <Setter Property="FontFamily" Value="{StaticResource MetricWebRegular}" />    
        ...

          </Setter>
      </Style>
  </Page.Resources>

И мой TextBox:

<TextBox Text="Hello 11111222333" FontSize="30" Style="{StaticResource TextBoxStyle}" />

Работает отлично:

введите здесь описание изображения

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

So,

  1. Убедитесь, что с вашим файлом шрифта нет проблем.

  2. ms-appx:///Assets/Fonts/MetricWeb-Regular.ttf#Metric Web этот путь означает, что ваш файл шрифта находится в папке Fonts папки Assets, убедитесь, что путь правильный.

  3. Если вы хотите использовать этот ресурс, вам нужно использовать StaticResource и его ключ.

  4. Если вы хотите переопределить семейство шрифтов по умолчанию, вы можете переопределить ресурс ContentControlThemeFontFamily следующим образом:

<FontFamily x:Key="ContentControlThemeFontFamily">ms-appx:///Assets/Blambot-Custom.ttf#Blambot Custom</FontFamily>, вот результат моего макета:

введите здесь описание изображения

Если проблема все еще существует, вы можете оставить комментарий, чтобы опубликовать URL-адрес загрузки вашего ресурса файла шрифта, чтобы мы могли его загрузить и протестировать.

person Grace Feng    schedule 16.08.2016
comment
Теперь он работает: D Я поместил шрифты в папку ресурсов PCL, ха-ха-ха. Спасибо за подробное объяснение :)) - person astropringles; 16.08.2016