如何在Xamarin表单中使用Heavy字体?

时间:2018-08-21 20:35:32

标签: c# xaml xamarin fonts xamarin.forms

我试图在XAML中使用字体“ Avenir Next Heavy”。

FontAttributes没有“重型”选项,因此我导入了“ {Avenir Next Heavy”的.ttf文件。尽管.ttf文件仅包含“重字体”,但仍显示为普通字体,在FontAttributes中未显示“重字体”选项。

1 个答案:

答案 0 :(得分:4)

您应该使用FontFamily而不是FontAttributes。如果您阅读本文https://xamarinhelp.com/custom-fonts-xamarin-forms/,则可以看到他们正在创建BoldFont,NormalFont之类的样式,并使用该样式映射其自定义字体。

<ResourceDictionary>
    <OnPlatform x:TypeArguments="x:String" x:Key="HeavyFont">
        <On Platform="Android" Value="YourFont-Heavy.ttf#YourFont" />
        <On Platform="iOS" Value="OpenSans-Bold" />
    </OnPlatform>
    <OnPlatform x:TypeArguments="x:String" x:Key="RegularFont">
        <On Platform="Android" Value="YourFont-Regular.ttf#YourFont" />
        <On Platform="iOS" Value="OpenSans-Regular" />
    </OnPlatform>
</ResourceDictionary>

在创建标签或设置字体时,您会喜欢的:

<StackLayout>
    <Label text="Helloworld heavy" FontFamily="{StaticResource HeavyFont}" />
    <Label text="Helloworld normal" FontFamily="{StaticResource NormalFont}" />
</StackLayout>

确保在平台特定项目中添加字体。如果您遵循该文章,那应该很好。资源字典,如果要在Global范围内定义,可以在App.Xaml中定义;如果只需要在该范围内,则可以在ContentPage / View内部直接定义。