无法使用Xamarin表单、iOS和Android使Font5正常工作
我尝试了以下所有我能找到的教程,最密切地遵循了这一条: 但是所有出现的都是问号而不是图标,甚至上面的例子在我运行时也不适用 我的XML如下所示:无法使用Xamarin表单、iOS和Android使Font5正常工作,xamarin,xamarin.forms,font-awesome,Xamarin,Xamarin.forms,Font Awesome,我尝试了以下所有我能找到的教程,最密切地遵循了这一条: 但是所有出现的都是问号而不是图标,甚至上面的例子在我运行时也不适用 我的XML如下所示: <Label Text="" FontSize="20" Grid.Column="0" > <Label.FontFamily> <OnPlatform x:TypeArguments="x:String" Android="Fon
<Label Text="" FontSize="20" Grid.Column="0" >
<Label.FontFamily>
<OnPlatform
x:TypeArguments="x:String"
Android="Font Awesome 5 Free-Regular-400.otf#Font Awesome 5 Free Regular"
iOS="Font Awesome 5 Free" />
</Label.FontFamily>
</Label>
我现在有一些问题
- 我需要将FontFamily设置为“FontAwesome”吗
- 对于Android和iOS,我应该使用.ttf文件还是.otf文件
- 对于iOS,我需要编辑info.plist吗?如果需要,我该如何编辑
- 我应该像
或像“;”
“\uf004”
- 对于Android和iOS d0,我需要将字体文件设置为“复制到输出目录”
- 如何找到字体的名称?我将其设置为“Font Aweasome 5 Free”,但这只是复制了示例,我也无法使其工作
- 我应该为iOS“”指定什么,应该是文件名减去.ttf(或.otf)?安卓怎么样
很抱歉,如果这些问题看起来很基本,但我只是在很长时间后无法显示图标。所有出现的都是一个?我似乎找不到任何地方解释如何为FontAwesome 5和Xamarin执行此操作,除了不起作用的示例。FontAwesome 5比FontAwesome 4稍微复杂一点,因为您有3套字体。我已经为FontWoomes5Pro做了这件事 我需要将FontFamily设置为“FontAwesome”吗 对于iOS,如果您使用品牌集,则可以将
fontfamily
设置为Font Awesome 5 Brands
,如果您使用其他3个品牌集中的任何一个,则可以将其设置为Font Awesome 5 Pro
。目前,一次只能使用一套。我会给你另一个答案,这样你就可以在同一个应用程序中使用这3套
对于Android,这是我的开关:
switch (awesomeStyle)
{
case AwesomeStyle.Brands:
fontFile = "fa-brands-400.ttf#Font Awesome 5 Brands";
break;
case AwesomeStyle.Light:
fontFile = "fa-light-300.ttf#Font Awesome 5 Pro";
break;
case AwesomeStyle.Regular:
fontFile = "fa-regular-400.ttf#Font Awesome 5 Pro";
break;
case AwesomeStyle.Solid:
fontFile = "fa-solid-900.ttf#Font Awesome 5 Pro";
break;
default:
throw new ArgumentOutOfRangeException();
}
对于Android和iOS,我应该使用.ttf文件还是.otf文件
我使用.ttf文件
对于iOS,我需要编辑info.plist吗?如果需要,我该如何编辑
对。将以下密钥添加到info.plist
文件中。只需在轻质、普通或实心之间添加一条字符串
<key>UIAppFonts</key>
<array>
<string>fa-brands-400.ttf</string>
<string>fa-light-300.ttf</string>
<string>fa-regular-400.ttf</string>
<string>fa-solid-900.ttf</string>
</array>
UIAppFonts
fa-brands-400.ttf
fa-light-300.ttf
fa-regular-400.ttf
fa-solid-900.ttf
我是否应该指定我的图标,如“" 或类似“\uf004”
在xaml中,使用”;“
版本。在C#中,您使用的是”\uf004“
版本
对于Android和iOS d0,我需要将字体文件设置为“复制到输出目录”
没有
如何找到字体的名称?我将其设置为“font Awesome 5 Free”,但这只是复制示例,我也无法使其正常工作
我为您提供了上面的名称。否则,您应该使用字体编辑器查找名称。在windows中,您可以在字体文件的属性中找到名称,但信息太多,您应该忽略标题的最后一个字(在“详细信息”选项卡中)
我应该为iOS=“”,指定什么?应该是文件名减去.ttf(或.otf)?Android=
请参见上文。如果您想在Xamarin.IOS中使用一些很棒的字体文件,您必须知道ttf文件的'Postscript Name'是什么。请参见下图: iOS通过“PostScript名称”加载任何字体,因此如果文件名和“PostScript名称”不同,我们应该小心使用 您应该下载字体查看器工具并检查此属性。并且必须将此名称指定给Xamarin.Forms或Xamarin.IOS控件的“FontFamily”或“font”属性 在Xamarin.Android中,操作系统不会通过“Postscript名称”加载字体文件,而是直接使用文件名 因此,我建议您将其重命名为“PostScript名称”,就像“FontAwesome5Pro Light.ttf”。然后您可以将“FontAwesome5Pro Light”指定给标签或按钮控件的“FontFamily”属性
然后你可以随心所欲地使用它。否则,你会看到一个小方框和一个问号。我不确定,但我想我在某个地方找到了你应该使用粗体字体的地方。你能尝试将此属性添加到你的标签中吗“我的答案解决了你的问题吗?请使用此链接作为c#参考刚才用此链接扯下了我的头发。现成的git项目在iOS中不起作用。您需要FontAttibutes=“Bold”使其正常工作,并引用info.plisty中的字体文件。您可以使用此网站为FontAttibutes编写C#代码