为什么我要退出我的Silverlight手机应用程序

时间:2011-03-28 17:00:45

标签: silverlight windows-phone-7

这是参考Windows Phone 7 close application

如果我有Page-A - >该怎么办? Page-B(即Page-A allowijg导航到Page-B)在Page-B上,我有一些控件可以将我带到Page-C,page-D,Page-E,Page-F等

如果我在Page-F上,按下后退键我希望用户到达Page-A(所以,我重写OnBackKeyPressed)。现在当On Page-A时,如果用户再次按下后退键,他将再次进入Page-B

因此,当用户按下Page-A上的键并且在按下返回键时卡在Page-A和Page-B之间时,我无法退出应用程序

这不是一致的用户体验。

从讨论中,我了解到Silverlight中没有(正确的)退出应用程序的方法。所以,我是否以不正确的方式设计应用程序,我要显示许多子页面,但我希望用户通过覆盖后退键来访问其中一个主页面。

3 个答案:

答案 0 :(得分:4)

你可以做的一件事就是不要覆盖页面F上的OnBackKeyPressed,而是覆盖页面B上的OnNavigatedTo方法,再通过backstack页面再转到页面A.这样你就可以更自然地向上移动。正如您所发现的,如果您重写一次后退键以重新路由某人,那么您很可能每次都必须这样做。

此解决方案的唯一问题是WP7没有简单的方法来了解您的来源。我所做的是,每次进入新页面时,我都会缓存我要离开的页面的URI。

答案 1 :(得分:2)

看看Non-linear Navigation Service;它旨在解决类似于你似乎所拥有的圆形导航问题。

如果不知道你想要实现的细节,很难提出替代方案,但也许你应该研究一下你的应用程序的设计,看看从背面按键上的第F页到第A页的导航是否可以要避免。

发布您认为有必要的原因的详细信息可能允许其他人建议替代实施。

答案 2 :(得分:1)

如果我理解正确您遇到圆形导航问题。换句话说,当你到达“Page-A”时,你希望应用程序退出。在这种情况下,您应该明确地查看Microsoft的这个食谱,以便使用循环导航:

Solving Circular Navigation

另一种使用方法是使用弹出窗口而不是为用户导航创建新页面,这样您就不必担心处理后台堆栈了。

查看此Creating a custom popup in WP7

如果有帮助,请告诉我。