Fonts 如何为自定义FontFamily添加权重?

Fonts 如何为自定义FontFamily添加权重?,fonts,uwp,uwp-xaml,font-family,Fonts,Uwp,Uwp Xaml,Font Family,我有来自同一家族的多个.ttf文件,如: 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

我有来自同一家族的多个.ttf文件,如:

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}" FontWeight="Bold" />
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Light" />
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Medium" />

ms-appx:///Fonts/MyFont.ttf#MyFont
ms-appx:///Fonts/MyFont_Bold.ttf#MyFont
ms-appx:///Fonts/MyFont_Light.ttf#MyFont
ms-appx:///Fonts/MyFont_Medium.ttf#MyFont
然后像这样使用它们:

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

有没有办法使用这样的主题:

<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}" FontWeight="Bold" />
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Light" />
<TextBlock FontFamily="{StaticResource MyFont}" FontWeight="Medium" />

有一个。使用此属性,我们可以为TextBlock设置字体权重。因此,您可以使用以下代码:

敏捷的棕色狐狸跳过懒狗。1234567890 敏捷的棕色狐狸跳过懒狗。1234567890 敏捷的棕色狐狸跳过懒狗。1234567890 但是,在使用自定义字体时,字符轮廓的厚度是根据您设置的字体计算的。它无法根据
FontWeight
使用相应的字体文件。计算的厚度可能与自定义字体中的厚度不同。例如:

敏捷的棕色狐狸跳过懒狗。1234567890 敏捷的棕色狐狸跳过懒狗。1234567890 敏捷的棕色狐狸跳过懒狗。1234567890 在上面的示例中,“consola.ttf”是具有常规字体大小的字体文件,“onsolab.ttf”是具有粗体字体大小的字体文件。在第三个
TextBlock
中,我使用了常规字体文件,并将
fontwweight
设置为
Bold
。输出如下所示:


正如您在将
fontwweight
设置为
Bold
后所看到的,字符轮廓的厚度较大,但与使用粗体字体文件的轮廓不同。因此,您可能需要考虑是否根据您的实际情况使用<代码> FontWeight <代码>或不同的字体文件。

谢谢您的回答,但这正是我所要求的。我需要一种方法来匹配FontWeight属性与相应的字体文件或任何使FontWeight可以对单独的字体使用的方法。