【问题标题】:WP7 - Determine where the app will go when the "back" button is pressedWP7 - 确定按下“后退”按钮时应用程序的去向
【发布时间】:2011-02-19 18:10:51
【问题描述】:

我正在使用 Silverlight 开发 WP7 应用程序。当用户单击后退按钮时,我想确定他们将去哪里。有没有办法在不管理我自己的导航堆栈的情况下确定用户的去向?

谢谢!

【问题讨论】:

  • 包含您提出问题的理由通常是个好主意。您有许多答案可以解决可能是您的意图也可能不是您的意图的问题。他们提供合理建议的努力是有用的,或者他们只是浪费了时间,因为对您的意图所做的假设是错误的。你的问题中的更多细节会让它更清楚。

标签: silverlight windows-phone-7


【解决方案1】:

回答实际上被问到的问题“有没有办法在不管理我自己的导航堆栈的情况下确定用户将去哪里?”

您可以使用 OnNavigatingFrom 覆盖其 eventargs 承载被导航到的页面的 Uri。我怀疑这仅在导航返回到应用内的页面时才有用。

【讨论】:

    【解决方案2】:

    您无法覆盖后退按钮的功能 - Derek 提到的规则由系统强制执行,并且始终会调用前一个页面/应用程序。

    但是,您可以添加要在按下后退键时执行的操作:

    this.BackKeyPress += new EventHandler<System.ComponentModel.CancelEventArgs>(MainPage_BackKeyPress);
    

    然后只需使用处理程序:

    void MainPage_BackKeyPress(object sender, System.ComponentModel.CancelEventArgs e)
    {
       // Your activity goes here
    }
    

    【讨论】:

      【解决方案3】:

      当用户按下返回按钮时,应用程序将返回上一页。如果用户在应用程序的最后一页,则应用程序将退出,用户将被导航到前一个应用程序。执行其他任何操作都会不一致,让用户感到困惑,并且几乎肯定会通过认证。

      【讨论】:

        【解决方案4】:

        一般来说,您需要构建由页面组成的应用(类似于网站)。例如,可以像这样使用 HyperlinkBut​​ton:

        <HyperlinkButton NavigateUri="/Page2.xaml" Content="Click here to enter page 2"/>
        

        点击后按返回键会自动返回上一页。实现这一点不需要额外的编程......它只是工作。

        但在某些情况下,您需要覆盖后退按钮。我遇到的是对话框。如果您的应用程序创建了一个对话框,那么后退按钮应该关闭它而不是返回到上一页。我写了一个brief article 来说明如何实现这一点。

        下面是来自Microsoft's certification requirements 的关于后退按钮的完整规则列表:

        保持一致的用户 经验,返回按钮必须只有 用于向后导航 应用程序。

        一个。按下返回按钮 应用程序的第一个屏幕必须 退出应用程序。

        b.必须按返回按钮 将应用程序返回到上一个 页面。

        c。如果当前页面显示 上下文菜单或对话框,按下 的后退按钮必须关闭菜单 或对话框并取消向后 导航到上一页。

        d。对于游戏,当返回按钮是 在游戏过程中按下,游戏可以 选择显示暂停上下文菜单 或对话或导航用户到 前菜单屏幕。按压背部 在暂停的上下文中再次按钮 菜单或对话框关闭菜单或 对话框。

        我发现,如果您不遵守这些规则,他们将不会批准您的应用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-01-02
          • 2016-08-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-04-13
          • 1970-01-01
          相关资源
          最近更新 更多