我按照https://developer.xamarin.com/guides/xamarin-forms/user-interface/text/fonts/#Using_a_Custom_Font的步骤进行了操作。
在UWP上我已将字体文件包含在Assets / Fonts / DSEG7Modern-Regular.ttf(构建操作:内容。永不复制)中。 Android是在Assets / DSEG7Modern-Regular.ttf(构建动作:AndroidAsset。永不复制)
代码
<Label Text="Hello Forms with XAML">
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<OnPlatform.iOS>DSEG7Modern-Regular</OnPlatform.iOS>
<OnPlatform.Android>DSEG7Modern-Regular.ttf#DSEG7 Modern</OnPlatform.Android>
<OnPlatform.WinPhone>Assets/DSEG7Modern-Regular.ttf#DSEG7 Modern</OnPlatform.WinPhone>
</OnPlatform>
</Label.FontFamily>
</Label>
这适用于Android设备。如果我在本地系统上安装该字体,它也可以正常工作。如果我没有安装字体(我的用户不会),它将无效。
我也尝试使用代码,但它也没有用。
private string GetDSEG7FontForCurrentDevice()
{
switch (Device.RuntimePlatform)
{
case Device.Windows:
case Device.WinPhone:
return "Assets/Fonts/DSEG7Modern-Regular.ttf#DSEG7 Modern";
case Device.Android:
return "DSEG7Modern-Regular.ttf#DSEG7 Modern";
case Device.iOS:
return "DSEG7Modern-Regular";
}
return MainLabel.FontFamily;
}
答案 0 :(得分:3)
添加&#34; /&#34;之前&#34;资产&#34;如下所示
xaml 中的
<Label x:Name="LabelModernFont" Text="Hello Forms with XAML">
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String" >
<On Platform ="Windows">/Assets/Fonts/DSEG7Modern-Regular.ttf#DSEG7 Modern</On>
</OnPlatform>
</Label.FontFamily>
</Label>
代码:中的
switch (Device.RuntimePlatform)
{
case "Windows":
LabelModernFont.FontFamily = "/Assets/Fonts/DSEG7Modern-Bold.ttf#DSEG7 Modern";
break;
}