这几天在研究 WP 8.1 的开发的时候遇到两个问题:

  • WP 8.1 应用默认按后退键退出后是会进入后台的(长按Back键可以看到),强迫症肯定会伤不起啊...
  • 从第一个页面跳转进入第二个页面之后,按Back键是没办法返回到第一个页面的

查了下资料,在群里讨论了一下,得出结果就是在 MainPage.xaml.cs(或者是其他,你的启动页面)修改/加入以下代码即可。

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    // TODO: 准备此处显示的页面。

    // TODO: 如果您的应用程序包含多个页面,请确保
    // 通过注册以下事件来处理硬件“后退”按钮:
    // Windows.Phone.UI.Input.HardwareButtons.BackPressed 事件。
    // 如果使用由某些模板提供的 NavigationHelper,
    // 则系统会为您处理该事件。

    // 添加下面这行,用来处理按键事件的
    Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}

//添加 HardwareButtons_BackPressed 事件
private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
    e.Handled = true;
    Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
    if (Frame.CanGoBack) // 还能返回,说明在第二个页面
    {
        e.Handled = true;
        Frame.GoBack(); // 返回第一个页面
    }
    else // 已经在第一个页面了
    {
        Application.Current.Exit(); //彻底退出应用
        // 当然你也可以在这里添加一些代码,
        // 实现“双击返回键退出应用”
    }
}

标签: windows phone

添加新评论