2016-11-25 6 views
0

Я создал навигационную панель в проекте UWP на Xamarin.Как изменить цвет фона навигационной панели программно в Xamarin?

App.xaml.cs 
... 
public app() 
{ 
    InitializeComponent(); 
    MainPage = new NavigationPage(new LoginPage()){ 
    BarBackgroundColor = Color.Black; 
    } 
} 

Так что, если я нахожусь на странице настроек, мне необходимо изменить цвет навигатора на программном уровне.

SettingPage.xaml.cs 

... 
private void clicked_btn(sender, e) { 
    ... 
    // how can I get the handle of navigationbar and then change the attribute of one??? 
} 

Возможно ли это?

Есть ли способ, который я могу сделать?

ответ

3

Лучше не делать этого, или делать это с помощью специальных средств визуализации. Но ниже есть формы подход:

var navigationPage = Application.Current.MainPage as NavigationPage; 
navigationPage.BarBackgroundColor = Color.Black; 
1

Из определения класса вы можете установить цвет фона бар. Как это.

namespace ProyectName 
{ 
    public class MainPage 
    { 
     public MainPage() 
     { 
      BarBackgroundColor = Color.FromHex("#484559"); 
      BarTextColor = Color.White; 
     } 
    } 
} 

Или с вашего app.xml добавить ResourceDictionary

<?xml version="1.0" encoding="utf-8"?> 
<Application xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="StockIt.App"> 
    <Application.Resources> 
     <ResourceDictionary> 
      <Color x:Key="Primary">#484559</Color> 
      <Style TargetType="NavigationPage"> 
       <Setter Property="BarBackgroundColor" Value="{StaticResource Primary}" /> 
       <Setter Property="BarTextColor" Value="White" /> 
      </Style> 
     </ResourceDictionary> 
    </Application.Resources> 
</Application> 
Смежные вопросы