我有一个包含一些选项的主页面。其中一个是导航到第1页,其中有两个箭头。一个导航到page2,page3,另一个箭头page3,page2,page1就像一个循环。还有一个导航到主页的箭头。
我想询问当用户按下后退按钮以从用户当前所在的任何页面终止应用程序时是否有办法,而不是浏览所有页面。
编辑
如果我想要当我按下后面总是导航到主页我必须做什么?
答案 0 :(得分:3)
清除要退出应用的onbackkeypress
功能中的后台堆栈。它会正常退出应用程序。
<强> [更新] 强>
1)清理堆栈后。使用NavigationService.Navigate(new Uri("MainPage.xaml",UriKind.Relative));
遍历主页并在下一个语句中执行e.Cancel = true
。
2)或者将后面的堆栈清理到主页面。并自动按后退将您带到主页。在主页内部将后堆栈完全清除在OnNavigatedTo
功能内,这样第一项始终是您的主页,用户可以轻松退出。
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
while (NavigationService.CanGoBack)
NavigationService.RemoveBackEntry();
e.Cancel = true;
return;
}
答案 1 :(得分:2)
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
while (NavigationService.CanGoBack)
NavigationService.RemoveBackEntry();
}
答案 2 :(得分:1)
在OnBackKeyPress中抛出异常,终止应用程序。
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
throw an exception();
}
答案 3 :(得分:0)
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
答案 4 :(得分:0)
您也可以这样做,
检查
e.NavigationMode == System.Windows.Navigation.NavigationMode.Back
在OnNavigatedTo
事件中(您需要覆盖每个页面)并调用
NavigationService.GoBack();
没有退出应用的直接方式..请参阅here