WP7 - 确定按下“后退”按钮时应用程序的去向

时间:2011-02-19 18:10:51

标签: silverlight windows-phone-7

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

谢谢!

4 个答案:

答案 0 :(得分:1)

你不能覆盖后退按钮的作用 - Derek提到的规则由系统强制执行,并且将始终调用上一页/应用程序。

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

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

然后只使用处理程序:

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

答案 1 :(得分:1)

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

您可以使用OnNavigatingFrom覆盖eventargs,其中包含要导航到的页面的Uri。我怀疑这只有在导航回到您应用中的页面时才有用。

答案 2 :(得分:0)

当用户按下“返回”按钮时,应用程序将返回上一页。如果用户位于应用程序的最后一页,则应用程序将退出,用户将导航到上一个应用程序。执行任何其他操作都是不一致的,会让用户感到困惑,而且几乎肯定会导致认证失败。

答案 3 :(得分:0)

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

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

点击后再按后退按钮将自动返回上一页。没有额外的编程可以实现这一点......它只是有效。

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

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

  

维持一致的用户   经验,必须只有后退按钮   用于向后导航   申请。

     

一个。按下后退按钮   应用程序的第一个屏幕必须   退出申请。

     

湾必须按“后退”按钮   将应用程序返回到上一个   页。

     

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

     

d。对于游戏,当后退按钮是   在游戏过程中按下,游戏可以   选择提供暂停上下文菜单   或对话或导航用户到   之前的菜单屏幕。按背面   在暂停的上下文中再次按钮   菜单或对话框关闭菜单或   对话框。

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