2016-11-23 2 views
2

У меня есть несколько файлов .ttf из той же семьи, как:UWP - Как добавить веса обычай FontFamily

MyFont.ttf 
MyFont_Bold.ttf 
MyFont_Light.ttf 
MyFont_Medium.ttf 

Если я хочу использовать каждый вес, я должен определить тему, как отдельный FontFamily, как это:

<FontFamily x:Key="MyFont"> 
    ms-appx:///Fonts/MyFont.ttf#MyFont 
</FontFamily> 
<FontFamily x:Key="MyFont_Bold"> 
    ms-appx:///Fonts/MyFont_Bold.ttf#MyFont 
</FontFamily> 
<FontFamily x:Key="MyFont_Light"> 
    ms-appx:///Fonts/MyFont_Light.ttf#MyFont 
</FontFamily> 
<FontFamily x:Key="MyFont_Medium"> 
    ms-appx:///Fonts/MyFont_Medium.ttf#MyFont 
</FontFamily> 

и использовать их любят:

<TextBlock FontFamily="{StaticResource MyFont}" /> 
<TextBlock FontFamily="{StaticResource MyFont_Bold}" /> 
<TextBlock FontFamily="{StaticResource MyFont_Light}" /> 
<TextBlock FontFamily="{StaticResource MyFont_Medium}" /> 

есть ли способ использовать тему, как это:

<TextBlock FontFamily="{StaticResource MyFont}" /> 
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Bold" /> 
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Light" /> 
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Medium" /> 

ответ

1

TextBlock имеет TextBlock.FontWeight property. С помощью этого свойства мы можем установить вес шрифта для TextBlock. Таким образом, вы можете использовать код, как следующее:

<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Bold">The quick brown fox jumps over the lazy dog.1234567890</TextBlock> 
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Light">The quick brown fox jumps over the lazy dog.1234567890</TextBlock> 
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Medium">The quick brown fox jumps over the lazy dog.1234567890</TextBlock> 

Однако при использовании пользовательских шрифтов, толщина характера очертаний рассчитываются по шрифту вы установили. Он не может использовать соответствующий файл шрифта в соответствии с FontWeight. Вычисленная толщина может отличаться от того, что в ваших пользовательских шрифтах. Например:

<TextBlock FontFamily="Assets/Fonts/consola.ttf#Consolas" FontSize="36">The quick brown fox jumps over the lazy dog.1234567890</TextBlock> 
<TextBlock FontFamily="Assets/Fonts/consolab.ttf#Consolas" FontSize="36">The quick brown fox jumps over the lazy dog.1234567890</TextBlock> 
<TextBlock FontFamily="Assets/Fonts/consola.ttf#Consolas" FontSize="36" FontWeight="Bold">The quick brown fox jumps over the lazy dog.1234567890</TextBlock> 

В приведенном выше примере, «consola.ttf» является файл шрифта с обычным начертанием и «onsolab.ttf» является файл шрифта жирным начертанием. В третьем TextBlock я использовал обычный файл шрифта и установил FontWeight в Bold. И выход выглядит следующим образом:
enter image description here

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

+0

Благодарим вас за ответ, но это именно то, о чем я спрашиваю. Мне нужен способ сопоставить свойство FontWeight с соответствующим файлом шрифта или что угодно, что позволяет использовать FontWeight против отдельного шрифта. – TheSETJ

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