Xamarin形成导航BarBackgroundColor问题

时间:2016-04-21 13:13:14

标签: xamarin xamarin.forms navigationbar

当我第一次点击登录时,主页的barbackground变成了正确的颜色,但是当我退出并再次登录时,barbackground的颜色不会改变??

登录页面(查看)

public partial class LoginPage : ContentPage
{
    LoginPageViewModel vm;

    public LoginPage ()
    {
        vm = new LoginPageViewModel ();
        BindingContext = vm;
        InitializeComponent ();
    }

    public void OnClickLogin(object o, EventArgs e) 
    {
        vm.Login ();
    }

    public void OnClickPasswoordVergeten(object o, EventArgs e) 
    {
        vm.PasswoordVergeten ();
    }

    public void OnClickContactUs(object o, EventArgs e) 
    {
        vm.ContactUs ();
    }

}

LoginPageViewModel(ViewModel)

public class LoginPageViewModel: INotifyPropertyChanged
{
    public LoginPageViewModel ()
    {

    }

    public void Login() 
    {
        App.Current.MainPage = new Dharma.MainPage();
    }
}

MainPage(查看)

public partial class MainPage : MasterDetailPage
{
    public MainPage ()
    {
        InitializeComponent ();

        masterPage.ListView.ItemSelected += OnItemSelected;

        var page = new NavigationPage (new ListPage());
        page.BarBackgroundColor = Color.FromRgb(26,179,148);
        Detail = page;
        masterPage.ListView.SelectedItem = null;
        IsPresented = false;
    }

    void OnItemSelected (object sender, SelectedItemChangedEventArgs e)
    {
        var item = e.SelectedItem as MasterPageItem;
        if (item != null) {
            var page = new NavigationPage ((Page)Activator.CreateInstance (item.TargetType));
            page.BarBackgroundColor = Color.FromRgb(26,179,148);
            Detail = page;
            masterPage.ListView.SelectedItem = null;
            IsPresented = false;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

将颜色设置为母版页。

public void Login() 
{
    var mainPage = new Dharma.MainPage();
    mainPage.BarBackgroundColor = Color.FromRgb(26,179,148);
    App.Current.MainPage = mainPage ;
}