Windows Phone 7 开发 31 日谈——第3日:返回键
by jeff blankenburg
第3日。
昨天,我们讨论了页面导航,以及如何简单的调用navigationservice从而到达程序中的不同页面。简要地提到了返回键,但返回键的复杂性是值得在本系列中单独成文的,主要是因为你可以重写(override)返回键的行为。
返回键如何工作
和中的返回按钮很相似。你可以点击它通过会话的决策信息后退。它能让你跨越多个站点,还有这些站点中的每个页面。windows phone中的返回键工作方式与之相同。它能让你回到之前访问过的页面,甚至是跨应用程序!
例如,如果我:
打开人物中心(people hub)。
在联系人列表中选择“jeff blankenburg”。
点击他的家庭地址(使我们进入地图应用程序)。
点击开始按钮。
开始游戏。
当点击返回键时,会沿着发生的事件列表后退。
重写返回键行为
是的,你没看错。你可以如你所想重定义返回键的行为。但这不表明允许你通过这种能力做一些不负责任的行为。在任何你想重写返回键行为的时候,你应该确认你所认为的“返回”的意思和你的用户所想的是一样。
例如,你打开了一个弹出框,用户的肌肉记忆可能会使他们按下返回键来关闭弹出框。在这种情况下,他们的本意不是离开应用程序,“返回”仅仅意味着摆脱弹出的对话框。
另一个例子,如果你有个游戏依赖于计时器或实时动作,使用返回键来暂停游戏就比较合适而非让人立即离开。下面是一些此类事件的指导原则:
你应该设身处地为用户考虑那一时刻“返回”对他们意味着什么。
如果再次用户按下返回键,你应该让默认行为执行。
使用返回键暂停游戏是个非常好的想法,但再按一次意味着他们真的想返回到前面,那就得让他们能后退。
这是在windows phone中重写返回键的代码:
protected override void onbackkeypress(system.componentmodel.canceleventargs e)
{
//你自己的代码。认真负责些。
e.cancel = true; //取消默认行为。
}
复制代码
明天我们讨论设备的方向以及如何在程序中处理横纵方向问题。
推荐阅读
-
Windows Phone 7 开发 31 日谈——第19日:推送通知
-
Windows Phone 7 开发 31 日谈——第17日:枢轴控件
-
Windows Phone 7 开发 31 日谈——第24日:嵌入字体
-
Windows Phone 7 开发 31 日谈——第8日:选择器
-
Windows Phone 7 开发 31 日谈——第9日:调试技巧
-
Windows Phone 7 开发 31 日谈——第3日:返回键
-
Windows Phone 7 开发 31 日谈——第14日:墓碑机制(多任务)
-
Windows Phone 7 开发 31 日谈——第10日:输入范围和文本框
-
Windows Phone 7 开发 31 日谈——第13日:位置服务
-
Windows Phone 7 开发 31 日谈——第20日:地图控件