gpt4 book ai didi

c# - 如何更改 Xamarin 导航标题中所有工具栏项目的字体

转载 作者:行者123 更新时间:2023-11-28 23:26:59 24 4
gpt4 key购买 nike

我在 xamarin 中创建了一个自定义导航页面,以便更改导航栏中工具栏项的字体。

一切顺利,但是所有工具栏项目的字体都没有改变,出于某种原因只是最后一个。

Icons

如您所见,除了字体之外,我还尝试将颜色更改为红色,但这也只适用于最后一项。

XAML:

<ContentPage.ToolbarItems>
<ToolbarItem x:Name="MenuItem1"
Order="Primary"
Text="x1"
Priority="0" />
<ToolbarItem x:Name="MenuItem2"
Order="Primary"
Text="x2"
Priority="1" />
<ToolbarItem x:Name="MenuItem3"
Order="Primary"
Text="x3"
Priority="2" />
<ToolbarItem x:Name="MenuItem4"
Order="Primary"
Text="x4"
Priority="3" />
</ContentPage.ToolbarItems>

苹果:

public class FontAwesomeNavigationPageRenderer : NavigationRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);

if(e.NewElement != null)
{
var att = new UITextAttributes
{
Font = UIFont.FromName("FontAwesome5Pro-Light", 18),
TextColor = UIColor.Red
};

UIBarButtonItem.Appearance.SetTitleTextAttributes(att, UIControlState.Normal);
}
}
}

我错过了什么?

最佳答案

导航渲染器 is a UINavigationController in iOS ,因此您可以执行以下操作:

var navController = this as UINavigationController;
var navigationItems = navController.NavigationBar.Items)
List<UIBarButtonItem> barButtonItems = new List<UIBarButtonItem>();

foreach(UINavigationItem item in navigationItems) {
barButtonItems.AddRange(item.NavigationBar.leftBarButtonItems);
barButtonItems.AddRange(item.NavigationBar.rightBarButtonItems);
}

foreach(UIBarButtonItem bbItem in barButtonItems) {
//change appearance for each bbItem
}

这将列出此 UINavigationController 的每个 UINavigationItem,然后获取与其关联的每个 UIBarButtonItem

关于c# - 如何更改 Xamarin 导航标题中所有工具栏项目的字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58342889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com