我试图在XAML中使用字体“ Avenir Next Heavy”。
FontAttributes
没有“重型”选项,因此我导入了“ {Avenir Next Heavy”的.ttf
文件。尽管.ttf
文件仅包含“重字体”,但仍显示为普通字体,在FontAttributes
中未显示“重字体”选项。
答案 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内部直接定义。