当前位置: 代码迷 >> Windows Mobile >> 急求解答:WindowsPhone容许对Back按键的响应事件进行重写么
  详细解决方案

急求解答:WindowsPhone容许对Back按键的响应事件进行重写么

热度:1396   发布时间:2013-02-26 00:00:00.0
急求解答:WindowsPhone允许对Back按键的响应事件进行重写么?
就是说,我可不可以实现下面这样的功能 。

当我按下手机 的Back键之后, 并不是返回前一个页面, 而是(重写其响应事件)
仍停留在当前界面进行事件的相应 处理。

比如说我现在有个应用 ,只有一个界面,
我把关于应用设置的按钮都布局到了一个canvas上, 我想在按Back事件之后,不是退出程序 ,而是将Canvas显示出来,
以便可以对应用进行别的操作。


求各位 大牛们 给正解。

谢谢啦。
------最佳解决方案--------------------------------------------------------


 e.Cancel = true;//不返回
加上应该就行了

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
 if (isStartScreen)//isStartScreen用来判断是否是起始界面
  e.Cancel = false;
 else
 {
  StartCanvas.Visibility = Visibility.Visible;(StartCanvas是我写的一个布有按钮的Canvas)
  isStartScreen= true;
 e.Cancel = true;
 }
------其他解决方案--------------------------------------------------------
 protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
        {
           if (MessageBox.Show("您真的想退出应用程序吗?", "退出提示!", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
                {
                    e.Cancel = false;
                }
                else
                    e.Cancel = true;
}
------其他解决方案--------------------------------------------------------
重写OnBackKeyPress就可以了
------其他解决方案--------------------------------------------------------
引用:
重写OnBackKeyPress就可以了


我试试哈,谢谢啦,搞不明白再问你。
------其他解决方案--------------------------------------------------------
引用:
重写OnBackKeyPress就可以了


貌似不太对哇,再请教下,我的代码是这样的
//如果是起始界面,按下Back正常退出程序,如果不是则按下Back后退回起始界面(就是显示出StartCanvas)
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
 if (isStartScreen)//isStartScreen用来判断是否是起始界面
     base.OnBackKeyPress(e);
 else
 {
    StartCanvas.Visibility = Visibility.Visible;(StartCanvas是我写的一个布有按钮的Canvas)
    isStartScreen= true;
 }
为什么 我在运行时,按Back后还是退出了程序 呢??
求大牛给正解。。。。坐等 。
------其他解决方案--------------------------------------------------------
你会下断点debug跟踪程序的运行过程么?

------其他解决方案--------------------------------------------------------
引用:
引用:

重写OnBackKeyPress就可以了


貌似不太对哇,再请教下,我的代码是这样的
//如果是起始界面,按下Back正常退出程序,如果不是则按下Back后退回起始界面(就是显示出StartCanvas)
protected override void OnBackKeyPress(System.ComponentModel.CancelEventAr……


光这样,还会调用系统返回的
------其他解决方案--------------------------------------------------------

 e.Cancel = true;得有这句
------其他解决方案--------------------------------------------------------
  相关解决方案