自动导航一般在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页面不要显示后退键,代码如上所示.