The*_*ETJ 5 fonts font-family uwp uwp-xaml
我有多个来自同一系列的 .ttf 文件,例如:
MyFont.ttf
MyFont_Bold.ttf
MyFont_Light.ttf
MyFont_Medium.ttf
Run Code Online (Sandbox Code Playgroud)
如果我想使用每个权重,我应该将主题定义为单独的 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>
Run Code Online (Sandbox Code Playgroud)
并像这样使用它们:
<TextBlock FontFamily="{StaticResource MyFont}" />
<TextBlock FontFamily="{StaticResource MyFont_Bold}" />
<TextBlock FontFamily="{StaticResource MyFont_Light}" />
<TextBlock FontFamily="{StaticResource MyFont_Medium}" />
Run Code Online (Sandbox Code Playgroud)
有没有办法使用这样的主题:
<TextBlock FontFamily="{StaticResource MyFont}" />
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Bold" />
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Light" />
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Medium" />
Run Code Online (Sandbox Code Playgroud)
TextBlock有一个TextBlock.FontWeight 属性。通过这个属性,我们可以设置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>
Run Code Online (Sandbox Code Playgroud)
但是,在使用自定义字体时,字符轮廓的粗细是根据您设置的字体计算的。无法根据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>
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,“consola.ttf”是具有常规字体粗细的字体文件,“onsolab.ttf”是具有粗体字体粗细的字体文件。在第三个中TextBlock
,我使用常规字体文件并设置FontWeight
为Bold
. 输出如下:
可以看到,设置为 后FontWeight
,Bold
字符轮廓的粗细较大,但与使用粗体字体文件的字符轮廓不一样。FontWeight
所以你可能需要根据你的实际场景来考虑是否使用不同的字体文件。
归档时间: |
|
查看次数: |
1148 次 |
最近记录: |