Что касается Style
, если для Key
не установлено значение, то стиль применяется ко всем объектам типа TargetType.
В вашем App.Xaml установите стиль с помощью x:Key
<Style TargetType="ContentPage" x:Key="specialPage">
<Setter Property="BackgroundColor" Value="Green"/>
</Style>
На вашей странице ContentPage
<ContentPage
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
Style="{StaticResource Key=specialPage}"
Как видите, этот стиль предназначен для ContentPage поскольку NavigationApp устанавливается только один раз для приложения, вы можете установить свойство NavigationBar в стиле ContentPage.
Итак,
1) Вы можете сохранить NavigationPage stati c и использовать его c переменная для изменения свойства NavigationPage
App.Xaml.cs
public static App CurrentApplication;
public NavigationPage AppNavigationPage;
public App()
{
InitializeComponent();
CurrentApplication = this;
this.AppNavigationPage = new NavigationPage(new MainPage());
MainPage = this.AppNavigationPage;
}
Page.Xaml.cs
public Page1()
{
InitializeComponent();
App.CurrentApplication.AppNavigationPage.BarBackgroundColor = Color.Red;
}
2) Используйте ресурс Dynami c для стилизации NavigationPage