我正在使用Silverlight开发WP7应用程序。当用户单击后退按钮时,我想确定他们将去哪里。有没有办法确定用户在不管理我自己的导航堆栈的情况下去哪里?
谢谢!
答案 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)
通常,您需要构建由页面组成的应用程序(类似于网站)。例如,可以像这样使用HyperlinkButton:
<HyperlinkButton NavigateUri="/Page2.xaml" Content="Click here to enter page 2"/>
点击后再按后退按钮将自动返回上一页。没有额外的编程可以实现这一点......它只是有效。
但在某些情况下,您需要覆盖后退按钮。我遇到的是对话框。如果您的应用程序创建了一个对话框,则后退按钮应该关闭它而不是返回上一页。我写了一篇关于如何实现这一目标的brief article。
以下是Microsoft's certification requirements关于后退按钮的完整规则列表:
维持一致的用户 经验,必须只有后退按钮 用于向后导航 申请。
一个。按下后退按钮 应用程序的第一个屏幕必须 退出申请。
湾必须按“后退”按钮 将应用程序返回到上一个 页。
℃。如果当前页面显示 上下文菜单或对话框,按下 后退按钮必须关闭菜单 或对话并取消后退 导航到上一页。
d。对于游戏,当后退按钮是 在游戏过程中按下,游戏可以 选择提供暂停上下文菜单 或对话或导航用户到 之前的菜单屏幕。按背面 在暂停的上下文中再次按钮 菜单或对话框关闭菜单或 对话框。
正如我发现的那样,如果您不遵守这些规则,他们就不会批准您的应用。