XAML 如何在项目中使用字体真棒图标作为ImageButton的图标

gijlo24d  于 2023-01-15  发布在  其他
关注(0)|答案(2)|浏览(145)

我有一个问题,实现如何使用字体真棒图标在我的Xamarin应用程序,我想使用它与ImageButton作为图标。和大多数教程,我发现没有帮助我理解它是如何工作的。

5w9g7ksd

5w9g7ksd1#

如Microsoft文档中所述:
1.您需要首先有字体文件,我相信.ttf(或.otf)。
1.将其添加到共享项目。
1.右键单击文件并单击“properties”,然后将其构建操作设置为Embedded Resource
1.使用AssemblyInfo.csApp.xaml.cs中的友好别名导出它:
[assembly: ExportFont("file-name.ttf", Alias = "FontAwesome")]
1.消耗它:

<Label FontFamily="FontAwesome" Text="&#xf004;"/>

关于图标列表代码,请查看FontAwesome codes
如果你想把它和点击功能一起使用,比如一个按钮,那么你可以把标签和GestureRecognizers一起使用:

<Label FontFamily="FontAwesome" Text="&#xf004;">
     <Label.GestureRecognizers>
         <TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/>
     </Label.GestureRecognizers>
</Label>

更新

更好的是使用ImageButtonFontImageSource属性而不是标签,你可以点击按钮,我发现有趣的是,你可以改变你的字形图标的颜色,天气硬编码或动态取决于selected theme,这里是一个例子:

<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}"所做的那样提供代码,它看起来像这样:

static class IconFont
    {
        public const string Ad = "\uf641";
        public const string AddressBook = "\uf2b9";
...
}

我邀请你跟随这个video tutorial并检查this GitHub Page,它从你提交的字体glyph文件开始为你生成静态c#类。

new9mtju

new9mtju2#

FontAwesome支持多种框架(Vue,React,Angular,WordPress,LESS,SCSS),但我不知道为什么他们不提供Xamarin Forms和MAUI。
我已经为Xamarin窗体和MAUI创建了自定义控件。
有关说明,请访问https://www.nuget.org/packages/Brushtail.FontAwesome.Mobile/
欢迎反馈。

相关问题