【问题标题】:Handling back button, changing pages in WP7处理后退按钮,在 WP7 中更改页面
【发布时间】:2011-07-08 15:21:10
【问题描述】:

我有“MainPage”和“FriendsPage”。如果用户单击“FriedPage”中的后退按钮,我如何模拟后退按钮。MaiPage 只能显示一次。

MainPage>好友页面,不返回 .

我认为我需要使用“OnNavigatedFrom”方法,但我不知道如何。请帮助我。

【问题讨论】:

  • 我不清楚您要做什么。如果您在 FriendsPage 上并点击后退按钮,是否要跳过 MainPage 并导航回应用程序?
  • 在 MaiPage 我有不需要显示两次的浏览器

标签: c# silverlight windows-phone-7


【解决方案1】:

点击按钮调用

NavigationService.GoBack();

或者,在 VB.NET 中,

NavigationService.GoBack()

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我还需要在 Firends.page 中按 Back 退出
    • @wsevendays 与其他几个人的 cmets 一致,我认为您会遇到麻烦。覆盖 OnBackKeypress(肯定在 WP 7.1 中)将阻止您返回主页面并抛出异常将导致应用程序退出,但这很讨厌。它不符合手机的一般用法。很多人回不去首页会迷茫和沮丧。
    【解决方案3】:

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

    也就是说,有两种方法:

    • 覆盖并消耗 OnBackKeyPress:但这可能会导致不和谐的用户体验。

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

    希望这会有所帮助!

    【讨论】:

    • @willmel 有趣!我不知道。是否有任何文档或链接?
    • 我对此非常兴奋。我自己动手来处理我正在使用的一种导航,但它有点小车。我宁愿使用 MS 支持的一个 :)
    • 在 MaiPage 我有不需要显示两次的浏览器
    【解决方案4】:

    可能有一种方法可以在不违反要求的情况下获得您想要的东西。

    您不希望用户返回的“主页”上有哪些内容? 从您有限的信息来看,听起来主页不应该是您的“主要”页面。

    您可能希望您的朋友页面成为主页,并有一个弹出窗口或包含您在“主页”上的任何内容。

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

    【讨论】:

    • 在 MaiPage 我有浏览器不需要显示两次
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2013-12-05
    相关资源
    最近更新 更多