处理后退按钮,更改WP7中的页面

时间:2011-07-08 15:21:10

标签: c# silverlight windows-phone-7

我有“MainPage”和“FriendsPage”。如果用户点击“FrinedPage”中的后退按钮,我可以模拟后退按钮.MaiPage只能显示一次。

MainPage> Friendspage,没有返回

我想我需要使用“OnNavigatedFrom”方法,但我不知道怎么做。请帮助我。

4 个答案:

答案 0 :(得分:4)

点击按钮

NavigationService.GoBack();

或者,在VB.NET中,

NavigationService.GoBack()

以下是MSDN文档: http://msdn.microsoft.com/en-us/library/system.windows.navigation.navigationservice.goback.aspx

答案 1 :(得分:0)

您应该能够处理/覆盖OnBackKeyPress并设置cancel = true以防止在您的应用中向后移动。

答案 2 :(得分:0)

与WPF不同,不允许在Windows Phone应用中从Backstack中删除页面。还有认证要求,从应用程序的第一页(假设MainPage.xaml),用户应该能够点击“返回”&退出应用程序。所以,请仔细考虑你在做什么。

那说,有几种方法:

  • 覆盖&吃掉OnBackKeyPress:这可能会导致用户体验不佳。

  • 覆盖MainPage中的OnNavigatedTo()并抛出未处理的异常以退出应用程序或采取其他适当的操作(NavigationService.GoBack()或其他一些页面)。关于退出SL应用程序(here)的帖子不错。此外,如果使用GoBack(),请记住,您现在承担了一些责任,在跳转后维护后台堆叠;可能必须在整个应用程序中始终如一地完成。

希望这有帮助!

答案 3 :(得分:0)

在不违反要求的情况下,可能有办法获得你想要的东西。

您的“主页”上有什么内容,您不希望用户返回? 从你有限的信息,听起来主页不应该是你的“主页”。

您可能希望将您的朋友页面作为主页面,并有一个弹出窗口或其他内容,包括您在“主页”上的内容。

对于其他非标准情况,导航规则有一些例外,请参阅“非线性导航”内容:http://windowsteamblog.com/windows_phone/b/wpdev/archive/2010/12/13/solving-circular-navigation-in-windows-phone-silverlight-applications.aspx