我有一个问题,实现如何使用字体真棒图标在我的Xamarin应用程序,我想使用它与ImageButton作为图标。和大多数教程,我发现没有帮助我理解它是如何工作的。
ImageButton
5w9g7ksd1#
如Microsoft文档中所述:1.您需要首先有字体文件,我相信.ttf(或.otf)。1.将其添加到共享项目。1.右键单击文件并单击“properties”,然后将其构建操作设置为Embedded Resource。1.使用AssemblyInfo.cs或App.xaml.cs中的友好别名导出它:[assembly: ExportFont("file-name.ttf", Alias = "FontAwesome")]1.消耗它:
.ttf
AssemblyInfo.cs
App.xaml.cs
[assembly: ExportFont("file-name.ttf", Alias = "FontAwesome")]
<Label FontFamily="FontAwesome" Text=""/>
关于图标列表代码,请查看FontAwesome codes。如果你想把它和点击功能一起使用,比如一个按钮,那么你可以把标签和GestureRecognizers一起使用:
<Label FontFamily="FontAwesome" Text=""> <Label.GestureRecognizers> <TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/> </Label.GestureRecognizers> </Label>
更好的是使用ImageButton和FontImageSource属性而不是标签,你可以点击按钮,我发现有趣的是,你可以改变你的字形图标的颜色,天气硬编码或动态取决于selected theme,这里是一个例子:
FontImageSource
<ImageButton> <ImageButton.Source> <FontImageSource FontFamily="FontAwesome" Glyph="{x:Static fonts:IconFont.AddressBook}" Color="{AppThemeBinding Dark=White, Light=Black}"/> </ImageButton.Source> </ImageButton>
你也可以定义一个具有const string属性的静态类,每个属性的值是对应于一个图标字形的代码,名称是它的描述,这样你只需要提供描述,而不是像我对Glyph="{x:Static fonts:IconFont.AddressBook}"所做的那样提供代码,它看起来像这样:
const string
Glyph="{x:Static fonts:IconFont.AddressBook}"
static class IconFont { public const string Ad = "\uf641"; public const string AddressBook = "\uf2b9"; ... }
我邀请你跟随这个video tutorial并检查this GitHub Page,它从你提交的字体glyph文件开始为你生成静态c#类。
new9mtju2#
FontAwesome支持多种框架(Vue,React,Angular,WordPress,LESS,SCSS),但我不知道为什么他们不提供Xamarin Forms和MAUI。我已经为Xamarin窗体和MAUI创建了自定义控件。有关说明,请访问https://www.nuget.org/packages/Brushtail.FontAwesome.Mobile/欢迎反馈。
2条答案
按热度按时间5w9g7ksd1#
如Microsoft文档中所述:
1.您需要首先有字体文件,我相信
.ttf
(或.otf)。1.将其添加到共享项目。
1.右键单击文件并单击“properties”,然后将其构建操作设置为Embedded Resource。
1.使用
AssemblyInfo.cs
或App.xaml.cs
中的友好别名导出它:[assembly: ExportFont("file-name.ttf", Alias = "FontAwesome")]
1.消耗它:
关于图标列表代码,请查看FontAwesome codes。
如果你想把它和点击功能一起使用,比如一个按钮,那么你可以把标签和GestureRecognizers一起使用:
更新
更好的是使用
ImageButton
和FontImageSource
属性而不是标签,你可以点击按钮,我发现有趣的是,你可以改变你的字形图标的颜色,天气硬编码或动态取决于selected theme,这里是一个例子:你也可以定义一个具有
const string
属性的静态类,每个属性的值是对应于一个图标字形的代码,名称是它的描述,这样你只需要提供描述,而不是像我对Glyph="{x:Static fonts:IconFont.AddressBook}"
所做的那样提供代码,它看起来像这样:我邀请你跟随这个video tutorial并检查this GitHub Page,它从你提交的字体glyph文件开始为你生成静态c#类。
new9mtju2#
FontAwesome支持多种框架(Vue,React,Angular,WordPress,LESS,SCSS),但我不知道为什么他们不提供Xamarin Forms和MAUI。
我已经为Xamarin窗体和MAUI创建了自定义控件。
有关说明,请访问https://www.nuget.org/packages/Brushtail.FontAwesome.Mobile/
欢迎反馈。