31天学会Windows Phone 7开发:返回键

移动开发
本文是《Windows Phone 7开发31日谈》的第三篇文章,文章介绍了如何利用返回按键来实现更多的功能。

上一篇,我们讨论了页面导航,以及如何简单的调用NavigationService从而到达程序中的不同页面。简要地提到了返回键,但返回键的复杂性是值得在本系列中单独成文的,主要是因为你可以重写(override)返回键的行为。

返回键如何工作

和浏览器中的返回按钮很相似。你可以点击它通过会话的决策信息后退。它能让你跨越多个站点,还有这些站点中的每个页面。Windows Phone中的返回键工作方式与之相同。它能让你回到之前访问过的页面,甚至是跨应用程序!

例如,如果我:

1.打开人物中心(People Hub);

2.在联系人列表中选择“Jeff Blankenburg”;

3.点击他的家庭地址(使我们进入地图应用程序);

4.点击开始按钮;

5.开始游戏。

当点击返回键时,会沿着发生的事件列表后退。

重写返回键行为

是的,你没看错。你可以如你所想重定义返回键的行为。但这不表明允许你通过这种能力做一些不负责任的行为。在任何你想重写返回键行为的时候,你应该确认你所认为的“返回”的意思和你的用户所想的是一样。

例如,你打开了一个弹出框,用户的肌肉记忆可能会使他们按下返回键来关闭弹出框。在这种情况下,他们的本意不是离开应用程序,“返回”仅仅意味着摆脱弹出的对话框。

另一个例子,如果你有个游戏依赖于计时器或实时动作,使用返回键来暂停游戏就比较合适而非让人立即离开。下面是一些此类事件的指导原则:

1.你应该设身处地为用户考虑那一时刻“返回”对他们意味着什么。

2.如果再次用户按下返回键,你应该让默认行为执行。

3.使用返回键暂停游戏是个非常好的想法,但再按一次意味着他们真的想返回到前面,那就得让他们能后退。

这是在Windows Phone中重写返回键的代码:

  1. protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)  
  2.  
  3. {  
  4.  
  5.     //你自己的代码。认真负责些。  
  6.     e.Cancel = true//取消默认行为。  
  7.  

下一篇我们讨论设备的方向以及如何在程序中处理横纵方向问题。

原作者:Jeff Blankenburg    译者:金山崟霸

中文来源:http://www.cnblogs.com/porscheyin/archive/2010/11/21/1883395.html

英文来源:http://www.jeffblankenburg.com/2010/10/03/31-days-of-windows-phone-day-3-the-back-button-paradigm/

【编辑推荐】

  1. 31天学会Windows Phone 7开发:项目模板
  2. 31天学会Windows Phone 7开发:页面间导航
责任编辑:王晓东 来源: 博客园
相关推荐

2012-08-02 10:16:39

Windows Pho

2012-06-13 13:01:57

Windows Pho

2012-06-12 10:43:20

Windows Pho

2012-08-01 10:26:33

Windows Pho

2012-06-25 16:14:26

Windows Pho

2012-08-16 11:31:30

Windows Pho

2012-08-09 13:39:22

Windows Pho

2012-06-06 13:48:34

Windows Pho

2012-08-13 09:56:45

Windows Pho

2012-06-07 09:33:13

Windows Pho

2012-07-24 10:15:34

Windows Pho

2012-06-19 09:31:53

Windows Pho

2012-07-13 14:41:12

2012-06-20 10:21:50

Windows Pho

2012-06-21 10:59:31

Windows Pho

2012-07-11 09:21:35

Windows Pho

2012-07-31 09:44:27

Windows Pho

2012-06-29 14:13:10

2013-04-19 16:52:24

Windows PhoWindows Pho

2013-07-30 11:18:37

Windows PhoWindows Pho
点赞
收藏

51CTO技术栈公众号