Как изменить цвет NavBar для MasterMainPage в Xamarin - PullRequest
2 голосов
/ 01 апреля 2019

Я создаю кроссплатформенное приложение Xamarin!

Проблема в том, что я хочу изменить цвет NavigationBar на MainPage, который равен MasterPage, с меню ящика в нем.

Я пытался с помощью этого кода изменить цвет, но на NavBar появляется дополнительная полоса, которую я не хочу.

App.xaml.cs:

  MainPage = new NavigationPage(new MainPage())

        {
            BarBackgroundColor = Color.FromHex("#00477f"),
            BarTextColor = Color.White,
        };

Снимки экрана: Эти снимки экрана показывают, с какой проблемой я сталкиваюсь!

https://i.stack.imgur.com/fbXie.png

https://i.stack.imgur.com/vuA1A.png

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019

Здесь, когда вы присваиваете App.xaml MainPage, NavigationPage, он показывает свою собственную панель навигации.Под капотом у вашего MasterDetailPage также отображается панель навигации.Таким образом, вы просматриваете две панели навигации.

Перейдите на свою MainPage.xaml.cs внутреннюю страницу и в конструкторе напишите строку:

NavigationPage.SetHasNavigationBar(this, false);

Таким образом, ваш MainPage.xaml.cs должен выглядеть следующим образом:

public MainPage()
{
    NavigationPage.SetHasNavigationBar(this, false);
    InitializeComponent();
    ......
}

Это скроет панель навигации MasterDetailPage.

0 голосов
/ 01 апреля 2019

NavigationPage имеет свойство BarBackgroundColor, которое вы можете установить.

Порекомендовал это

var nav = new NavigationPage(new ContentPage { Title = "Page" } );
nav.BarBackgroundColor = Color.Blue;
...