Я создаю кроссплатформенное приложение Xamarin!
Проблема в том, что я хочу изменить цвет NavigationBar из MainPage, который является MasterPage с меню ящика.
Я попытался с помощью этого кода изменить цвет, но на панели навигации появляется дополнительная полоса, которую я не хочу.
Приложение.xaml.cs:
MainPage = new NavigationPage(new MainPage())
{
BarBackgroundColor = Color.FromHex("#00477f"),
BarTextColor = Color.White,
};
Скриншоты: Эти скриншоты показывают, с какой проблемой я столкнулся!
@Narendra Sharma Я тоже пытался, но это влияет на главное меню ящика. после перехода на другое меню ящика имени страницы исчезает.





NavigationPage имеет свойство BarBackgroundColor, которое вы можете установить.
var nav = new NavigationPage(new ContentPage { Title = "Page" } );
nav.BarBackgroundColor = Color.Blue;
Здесь, когда вы назначаете App.xamlMainPage, NavigationPage, он показывает свою собственную панель навигации. Под капотом ваш MasterDetailPage также показывает панель навигации. Таким образом, вы просматриваете две панели навигации.
Перейдите на свою бэкенд-страницу MainPage.xaml.cs и в Конструкторе пропишите строчку:
NavigationPage.SetHasNavigationBar(this, false);
Таким образом, ваш MainPage.xaml.cs должен выглядеть так:
public MainPage()
{
NavigationPage.SetHasNavigationBar(this, false);
InitializeComponent();
......
}
Это скроет панель навигации MasterDetailPage.
Измените ваш (новый MainPage()) на другое имя страницы MainPage = new NavigationPage(new HomePage()) { BarBackgroundColor = Color.FromHex("#00477f"), BarTextColor = Color.White, };