C# 当用户通过Navigation.PushAsync(TabbedPage)打开时,更改TabbedPage主标题颜色

C# 当用户通过Navigation.PushAsync(TabbedPage)打开时,更改TabbedPage主标题颜色,c#,android,xamarin,tabs,xamarin.forms,C#,Android,Xamarin,Tabs,Xamarin.forms,所以,我遇到了这个问题,我不知道该怎么解决。 基本上,当我从Navigation.PushAsync(tabbedPage)调用时,我想更改TabLayout的主标题颜色;看起来很容易,但事实并非如此。 我不知道要换什么东西,那顶酒吧的。。。 我看到了,一个属性,在名为“BarTextColorProperty”的NavigationPage类中。我能用这个做什么 我测试了同一个样本,但用了另一种方法。。。PushModalAsync(tabbedPage),这次是在一个模式页面中,工作:) 但

所以,我遇到了这个问题,我不知道该怎么解决。 基本上,当我从Navigation.PushAsync(tabbedPage)调用时,我想更改TabLayout的主标题颜色;看起来很容易,但事实并非如此。 我不知道要换什么东西,那顶酒吧的。。。 我看到了,一个属性,在名为“BarTextColorProperty”的NavigationPage类中。我能用这个做什么

我测试了同一个样本,但用了另一种方法。。。PushModalAsync(tabbedPage),这次是在一个模式页面中,工作:)

但是,我确实需要在Navigation.PushAsync(tabbedPage)中完成这项工作,因为backButton

最后,我知道,如果你查看代码,你会看到Navigation.PushModalAsync(tabbedPage),tabbedPage在导航栏中,并且可以工作,但我尝试将tabbedPage放在NavigationPage中(在PushAsync方法中;),Xamarin会绘制3个栏。。。第一个栏,只有一个后退按钮

有人能帮忙吗??? 如果需要更多代码,请告诉我

代码: ->Navigation.PushAsync(tabbedPage)


很抱歉,回复太晚,通过仔细检查您的描述和代码,我认为您只想在当前页面更改时更改
选项卡页面
栏上的标题,如果您的
选项卡页面
如下所示:

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:TabbedPageForms"
             x:Class="TabbedPageForms.MainPage">

    <local:TodayPage Title="Today"  />

    <local:SchedulePage Title="Schedule"  />
</TabbedPage>
public partial class MainPage : TabbedPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
        this.CurrentPageChanged += MainPage_CurrentPageChanged;
        ChangeBarColor();
    }

    protected override void OnDisappearing()
    {
        this.CurrentPageChanged -= MainPage_CurrentPageChanged;
        base.OnDisappearing();
    }

    private void MainPage_CurrentPageChanged(object sender, EventArgs e)
    {
        ChangeBarColor();
    }

    private void ChangeBarColor()
    {
        var currentPage = this.CurrentPage;
        switch (currentPage.Title)
        {
            case "Today":
                this.BarTextColor = Color.Green;
                break;

            case "Schedule":
                this.BarTextColor = Color.Orange;
                break;
        }
    }
}
MainPage = new NavigationPage(new MainPage());
我没有发现与
导航页面
相关的任何问题,您可以在App.cs中使用
导航页面
显示此
选项卡页面
,例如:

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:TabbedPageForms"
             x:Class="TabbedPageForms.MainPage">

    <local:TodayPage Title="Today"  />

    <local:SchedulePage Title="Schedule"  />
</TabbedPage>
public partial class MainPage : TabbedPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
        this.CurrentPageChanged += MainPage_CurrentPageChanged;
        ChangeBarColor();
    }

    protected override void OnDisappearing()
    {
        this.CurrentPageChanged -= MainPage_CurrentPageChanged;
        base.OnDisappearing();
    }

    private void MainPage_CurrentPageChanged(object sender, EventArgs e)
    {
        ChangeBarColor();
    }

    private void ChangeBarColor()
    {
        var currentPage = this.CurrentPage;
        switch (currentPage.Title)
        {
            case "Today":
                this.BarTextColor = Color.Green;
                break;

            case "Schedule":
                this.BarTextColor = Color.Orange;
                break;
        }
    }
}
MainPage = new NavigationPage(new MainPage());

链接图像:对不起,我不太明白,这与
导航页面
有什么关系?选择任何条形图项目时,是否要更改选项卡页面的条形图文本颜色?感谢回复:)。。。所以,当用户更改选项卡(CurrentPageChanged事件)时,我想更改选项卡页面的顶部栏标题颜色。。。例如,如果选择了tab1,则标题为绿色,如果选择了tab2,则标题为橙色。。我试着这样做,当tabbedPage被“Navigation.PushAsync方法”打开,但不起作用时。。。(按钮1)如果我用“Navigation.PushModalAsync方法”打开,它会工作。。。(按钮2),但我不想通过Navigation.PushModalAsync打开它,因为我需要一个backbutton。。。我怎样才能通过Navigation.PushAsync做到这一点,并获得与Navigation.PushModalAsync相同的结果?别担心:)没问题:)谢谢你的回复,但我不是在找这个。。。你看过我的照片吗?1(2)和2(2)图片->Navigation.PushAsync,我不能更改“Tabbed change Color Test”颜色标题,当用户更改选项卡时…3和4图片->Navigation.PushModalAsync,这里没有问题。。。但我想使用“Navigation.PushAsync”。。。谢谢你的建议“MainPage=newNavigationPage(newmainpage());”,但我需要回到导航中。。。