我在我們的應用程序中使用自定義字體,並且發現如果使用字體爲Label樣式設置FontAttributes =「Bold」適用於iOS模擬器,但不適用於真實設備。Xamarin.Forms自定義字體未在iOS設備上拾取FontAttributes時指定
採取的步驟: 1.將字體Effra_Std_Reg.ttf添加到資源文件夾中。 2.將此添加到應用程序提供的字體元素Info.plist並設置其構建操作。 3.在App.XAML中創建樣式。 4.將這些樣式添加到我的頁面上的XAML。
全部上述工作適用於沒有設置FontAttributes的Label。只要在樣式或標籤本身上設置FontAttributes =「Bold」,就會使用系統字體insted。注意,這可以在模擬器上運行。
我知道FontFamily是字體名稱在ttf文件中定義 - 不是ttf文件名。
這在運行iOS 10.3.3的iPad上。
我的App.xaml是:
<?xml version="1.0" encoding="utf-8" ?>
<Application x:Class="FontTest.App"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<Application.Resources>
<ResourceDictionary>
<Style TargetType="Label">
<Setter Property="FontSize" Value="30" />
</Style>
<Style x:Key="PlainLabelStyle" TargetType="Label">
<Setter Property="FontFamily">
<Setter.Value>
<OnPlatform x:TypeArguments="x:String"
Android="Effra_Std_Rg.ttf#Effra"
iOS="Effra" />
</Setter.Value>
</Setter>
</Style>
<Style x:Key="BoldLabelStyle" TargetType="Label">
<Setter Property="FontFamily">
<Setter.Value>
<OnPlatform x:TypeArguments="x:String"
Android="Effra_Std_Bd.ttf#Effra"
iOS="Effra" />
</Setter.Value>
</Setter>
<Setter Property="FontAttributes" Value="Bold" />
</Style>
</ResourceDictionary>
</Application.Resources>
</Application>
而且我的網頁XAML(提取物)是:
<Label Grid.Row="4"
Grid.Column="1"
Style="{StaticResource BoldLabelStyle}"
Text="QWERTYUIOPASDFGHJKLZXCVBNM" />