我有这样的事情:
SplashPage - > MainPage - >设置 - >约
SplashPage只是带有我的徽标和动画的页面大约1秒钟,然后我将用户重定向到MainPage。第一个问题是,当我按下MainPage上的后退按钮时,我又回到了splashpage,这并不好。我通过这段代码解决了这个问题:
private bool navigateBack;
public SplashPage()
{
InitializeComponent();
navigateBack = false;
}
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
if (navigateBack)
{
this.NavigationService.GoBack();
}
else
{
navigateBack = true;
base.OnNavigatedTo(e);
}
}
这样按下后退按钮,用户再也看不到启动页面,但我有奇怪的问题。应用程序抛出导航异常,即CanGoBack属性为false且应用程序退出。确实,我想退出应用程序,但不使用异常,因为我将在市场上失败认证。
我的问题是如何从MainPage导航并退出应用程序,但没有抛出任何异常。提前谢谢!
答案 0 :(得分:2)
为启动画面引入单独的页面会引入更多问题而不是解决问题(正如您所发现的那样),因此我建议您在主页上使用叠加层。我[发布关于使用启动画面和这种情况一段时间回来。
答案 1 :(得分:1)
阅读以下有关此方案的背景知识以及如何处理它:
http://blogs.msdn.com/b/ptorr/archive/2010/08/28/introducing-the-concept-of-places.aspx
和
http://blogs.msdn.com/b/ptorr/archive/2010/08/28/redirecting-an-initial-navigation.aspx
答案 2 :(得分:0)
在芒果你可以使用
NavigationService.RemoveBackEntry()
从您的页面堆栈中删除页面,即在您点击主页面时立即启动页面
因此,如果您在主页上有启动页面,则可以将该功能调用两次
第一次从页面堆栈中删除MainPage
,第二次从页面堆栈中删除SplashPage
时,您会注意到当您按下后退键时,您将关闭应用程序< / p>