windows-phone-8.1 – Windows phone 8.1 BackPressed无法正常工
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>切记不要多次订阅>记得允许用户离开您的主页 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |