自动导航一般在OnLaunched方法中,订阅事件:
rootFrame.Navigated += Show_Navigation;
事件如下,使用SystemNavigationManager显示后退键
// 方式 1 if ((Window.Current.Content as Frame).SourcePageType.Name== "MainPage") { SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed; } else { if ((Window.Current.Content as Frame).BackStack.Any()) { SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; } else { SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed; } } // 方式 2 // stack为后进先出。如mainpage页面跳走 //var plist = (Window.Current.Content as Frame).BackStack; //var count = plist.Count; //if (count > 0) //{ // if (plist[count - 1].SourcePageType.Name == "MainPage") // { // SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; // } // else // { // SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed; // } //}
但是如果想要在主页不显示后退键的话,判断BackStack栈页面的name属性,例如想要MainPage页面不要显示后退键,代码如上所示.