我正在使用Xamarin.Forms编写iOS应用程序,我的工具栏字体颜色有问题。我无法改变它。
<ContentPage.ToolbarItem>
<ToolbarItem Text="Menu2" Order="Secondary" />
<ToolbarItem Text="Menu1" Order="Secondary" />
如何将工具栏项目字体颜色更改为红色?我尝试使用导航页面自定义渲染器,但没有运气。
答案 0 :(得分:1)
使用此link
中的代码using System;
using Xamarin.Forms;
using ToolbarCustomFont.iOS;
using Xamarin.Forms.Platform.iOS;
using UIKit;
[assembly: ExportRenderer(typeof (NavigationPage), typeof (CustomFontNavigationPageRenderer))]
namespace ToolbarCustomFont.iOS
{
// https://blog.xamarin.com/custom-fonts-in-ios/
public class CustomFontNavigationPageRenderer : NavigationRenderer
{
public CustomFontNavigationPageRenderer()
{
}
const string customFontName = "FontAwesome.ttf";
nfloat customFontSize = 10;
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
if (this.NavigationBar == null) return;
SetNavBarStyle();
// SetNavBarTitle();
SetNavBarItems();
}
private void SetNavBarStyle()
{
NavigationBar.ShadowImage = new UIImage();
NavigationBar.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
UINavigationBar.Appearance.ShadowImage = new UIImage();
UINavigationBar.Appearance.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
}
private void SetNavBarItems()
{
var navPage = this.Element as NavigationPage;
if (navPage == null) return;
var textAttributes = new UITextAttributes()
{
Font = UIFont.FromName(customFontName, customFontSize)
};
var textAttributesHighlighted = new UITextAttributes()
{
TextColor = Color.Black.ToUIColor(),
Font = UIFont.FromName(customFontName, customFontSize)
};
UIBarButtonItem.Appearance.SetTitleTextAttributes(textAttributes,
UIControlState.Normal);
UIBarButtonItem.Appearance.SetTitleTextAttributes(textAttributesHighlighted,
UIControlState.Highlighted);
}
}
}