为选项卡式页面选项卡使用字体真棒图标
Use font awesome icon for tabbed page tabs
这就是我向标签页添加标签的方式。
我的应用程序中的各个地方都有很棒的字体图标。我如何将图标添加到我的选项卡,因为我在后面的代码中添加选项卡是这样的:
public partial class MainTabbedPage : TabbedPage
{
public MainTabbedPage(SelectedItem item)
{
InitializeComponent();
var summaryPage = new DeviceSummaryPage(item);
Children.Add(summaryPage);
Children.Add(new DeviceSettingsPage(item));
Children.Add(new FirmwarePage(item));
}
}
How do I add icons to my tabs
首先,您需要将字体复制到特定于平台的项目中:
- 在 Android 进入 Assets 文件夹 使用 Build Action AndroidAsset,
- 在 iOS 上使用构建操作 BundleResource、
进入 Resources 文件夹
- 在 UWP 上使用 Build Action Content.
进入 Assets 文件夹
注意:在 iOS 上,需要更改 Info.plist 文件以便也可以使用添加的字体。
PNG 在 Android 平台上。
为了能够使用字体,在 App.xaml
中创建 ResourceDictionary
<ResourceDictionary>
<OnPlatform x:Key="FontAwesomeBrands" x:TypeArguments="x:String">
<On Platform="Android" Value="FontAwesome5Brands.otf#Regular" />
<On Platform="iOS" Value="FontAwesome5Brands-Regular" />
<On Platform="UWP" Value="/Assets/FontAwesome5Brands.otf#Font Awesome 5 Brands" />
</OnPlatform>
<OnPlatform x:Key="FontAwesomeSolid" x:TypeArguments="x:String">
<On Platform="Android" Value="FontAwesome5Solid.otf#Regular" />
<On Platform="iOS" Value="FontAwesome5Free-Solid" />
<On Platform="UWP" Value="/Assets/FontAwesome5Solid.otf#Font Awesome 5 Free" />
</OnPlatform>
<OnPlatform x:Key="FontAwesomeRegular" x:TypeArguments="x:String">
<On Platform="Android" Value="FontAwesome5Regular.otf#Regular" />
<On Platform="iOS" Value="FontAwesome5Free-Regular" />
<On Platform="UWP" Value="/Assets/FontAwesome5Regular.otf#Font Awesome 5 Free" />
</OnPlatform>
</ResourceDictionary>
创建一个 FontImageSource 对象并相应地设置值,然后将该对象传递给您的 ContentPage 的 IconImageSource。
public TabbedPage1()
{
InitializeComponent();
var solidFontFamily = Application.Current.Resources["FontAwesomeSolid"] as OnPlatform<string>;
var RegularFontFamily = Application.Current.Resources["FontAwesomeRegular"] as OnPlatform<string>;
Children.Add(new simplecontrol.Page1() { IconImageSource=new FontImageSource() { FontFamily = RegularFontFamily, Glyph = "\uf108" } });
Children.Add(new simplecontrol.Page3() { IconImageSource = new FontImageSource() { FontFamily = solidFontFamily, Glyph = "\uf108" } });
}
这就是我向标签页添加标签的方式。 我的应用程序中的各个地方都有很棒的字体图标。我如何将图标添加到我的选项卡,因为我在后面的代码中添加选项卡是这样的:
public partial class MainTabbedPage : TabbedPage
{
public MainTabbedPage(SelectedItem item)
{
InitializeComponent();
var summaryPage = new DeviceSummaryPage(item);
Children.Add(summaryPage);
Children.Add(new DeviceSettingsPage(item));
Children.Add(new FirmwarePage(item));
}
}
How do I add icons to my tabs
首先,您需要将字体复制到特定于平台的项目中:
- 在 Android 进入 Assets 文件夹 使用 Build Action AndroidAsset,
- 在 iOS 上使用构建操作 BundleResource、 进入 Resources 文件夹
- 在 UWP 上使用 Build Action Content. 进入 Assets 文件夹
注意:在 iOS 上,需要更改 Info.plist 文件以便也可以使用添加的字体。
PNG 在 Android 平台上。
为了能够使用字体,在 App.xaml
中创建 ResourceDictionary<ResourceDictionary>
<OnPlatform x:Key="FontAwesomeBrands" x:TypeArguments="x:String">
<On Platform="Android" Value="FontAwesome5Brands.otf#Regular" />
<On Platform="iOS" Value="FontAwesome5Brands-Regular" />
<On Platform="UWP" Value="/Assets/FontAwesome5Brands.otf#Font Awesome 5 Brands" />
</OnPlatform>
<OnPlatform x:Key="FontAwesomeSolid" x:TypeArguments="x:String">
<On Platform="Android" Value="FontAwesome5Solid.otf#Regular" />
<On Platform="iOS" Value="FontAwesome5Free-Solid" />
<On Platform="UWP" Value="/Assets/FontAwesome5Solid.otf#Font Awesome 5 Free" />
</OnPlatform>
<OnPlatform x:Key="FontAwesomeRegular" x:TypeArguments="x:String">
<On Platform="Android" Value="FontAwesome5Regular.otf#Regular" />
<On Platform="iOS" Value="FontAwesome5Free-Regular" />
<On Platform="UWP" Value="/Assets/FontAwesome5Regular.otf#Font Awesome 5 Free" />
</OnPlatform>
</ResourceDictionary>
创建一个 FontImageSource 对象并相应地设置值,然后将该对象传递给您的 ContentPage 的 IconImageSource。
public TabbedPage1()
{
InitializeComponent();
var solidFontFamily = Application.Current.Resources["FontAwesomeSolid"] as OnPlatform<string>;
var RegularFontFamily = Application.Current.Resources["FontAwesomeRegular"] as OnPlatform<string>;
Children.Add(new simplecontrol.Page1() { IconImageSource=new FontImageSource() { FontFamily = RegularFontFamily, Glyph = "\uf108" } });
Children.Add(new simplecontrol.Page3() { IconImageSource = new FontImageSource() { FontFamily = solidFontFamily, Glyph = "\uf108" } });
}