加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-phone-8.1 – Windows phone 8.1 BackPressed无法正常工

发布时间:2020-12-14 02:08:01 所属栏目:Windows 来源:网络整理
导读:Windows Phone 8.1全新推出.基本功能是后退按钮点击.这个功能不正常的是这款Windows Phone 8.1.这种行为还是我犯了错误. 下面的代码在主页中使用,但是这个代码在点击后也从所有其他类调用.我只需要在主页上访问以下方法. 请检查以下代码,并向我推荐好的解决
Windows Phone 8.1全新推出.基本功能是后退按钮点击.这个功能不正常的是这款Windows Phone 8.1.这种行为还是我犯了错误.

下面的代码在主页中使用,但是这个代码在点击后也从所有其他类调用.我只需要在主页上访问以下方法.

请检查以下代码,并向我推荐好的解决方案.

请查看我的代码:

public HomePage()
 {
  this.InitializeComponent(); 
  Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
 }

    void HardwareButtons_BackPressed(object sender,BackPressedEventArgs e)
    {

    }

谢谢

解决方法

它运作正常. BackPressed event正在应用程序范围内.我想到的两个选择:

>编写可识别您当前调用它的Page的eventhandler – 简单示例如下所示:

private void HardwareButtons_BackPressed(object sender,Windows.Phone.UI.Input.BackPressedEventArgs e)
{
    Frame frame = Window.Current.Content as Frame;
    if (frame == null) return;

    if (frame.Content is HomePage)
    {
        e.Handled = true;
        Debug.WriteLine("I'm in HomePage");
    }
    else if (frame.CanGoBack)
    {
        frame.GoBack();
        e.Handled = true;
    }
}

>第二个选项 – 当您进入页面时订阅Windows.Phone.UI.Input.HardwareButtons.BackPressed并在您离开页面时取消订阅.请注意,以这种方式存在一些缺陷 – 您必须正确处理OnNavigatedTo,OnNavigatedFrom,Suspending和Resuming(更多关于Lifecycle here).还要注意,订阅应该在其他人之前完成 – 例如NavigationHelper.

一些评论 – 上面的代码应该有效,但它还取决于其他情况:

>如果之前有其他订阅BackPressed的东西(在App.xaml.cs中) – 请记住,通常会在订阅时触发事件>检查您是否使用NavigationHelper – 它还订阅了BackPressed>切记不要多次订阅>记得允许用户离开您的主页

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读