En mi aplicación Xamarin, establecí el color de la barra de navegación (barra de estado/barra superior) en la página de styles.xml . Y el color de la barra de navegación en todas las páginas cambia a Blanco .
estilos.xml
<?xml version="1.0" encoding="utf-8" ?> <resources> <style name="MainTheme" parent="MainTheme.Base"> </style> <!-- Base theme applied no matter what API --> <style name="MainTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- colorPrimaryDark is used for the status bar --> <item name="colorPrimaryDark">#FFFFFF</item> </style> </resources>Ahora, solo quiero cambiar el color de la barra de navegación en la página de contenido único a Negro .
Seguí esta respuesta pegando el código en la página de contenido, pero el color no cambió.
((NavigationPage)Application.Current.MainPage).BarBackgroundColor = Color.Black; ((NavigationPage)Application.Current.MainPage).BarTextColor = Color.Black;ACTUALIZAR
Prueba esto,
En App.xaml para todas las páginas
<Application.Resources> <ResourceDictionary> <Style TargetType="NavigationPage"> <Setter Property="BarBackgroundColor" Value="White"/> <Setter Property="BarTextColor" Value="Black" /> </Style> </ResourceDictionary> </Application.Resources>Digamos en la página 2 con Color Black y con OnDisappearing White nuevamente para todos
public partial class Page2 : ContentPage { public Page2() { InitializeComponent(); } protected override void OnAppearing() { base.OnAppearing(); var navigationPage = Application.Current.MainPage as NavigationPage; navigationPage.BarBackgroundColor = Color.Black; } private async void Button_Clicked(object sender, EventArgs e) { await Navigation.PushAsync(new Page2DetailsPage()); } protected override void OnDisappearing() { base.OnDisappearing(); var navigationPage = Application.Current.MainPage as NavigationPage; navigationPage.BarBackgroundColor = Color.White; }