一年多以前为我们学校写了一个8.0的课表,现在想迁移到Windows10,同时支持PC和手机。
本来一切正常,但是在处理回退按键的时候出了点问题。
微软在Channel9 10166的视频中给出了如何处理手机回退按键的处理方法。
就是在项目中添加对手机的扩展
然后使用这行代码在运行时做出判断
if (Windows.Foundation.Metadata.ApiInformation.IsTypePResent("Windows.Phone.UI.Input.HardwareButtons")) { Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; }
最开始的时候我也是用这种方法,但是最后发现这种发法有局限性,就是并不支持PC的平板模式下的回退按钮。
那么如何才能同时都支持呢?
经过一番查找发现,要想同时支持其实很简单只需要这样写就可以了!!!
var view = SystemNavigationManager.GetForCurrentView(); view.BackRequested += View_BackRequested;
而且这样写还有一个好处是无需添加对手机扩展的引用!
这个事件是一个路由事件,如果不希望传递给上层需要在本层标记为
e.Handled = true;
好滴!回退按键的处理完美解决!
新闻热点
疑难解答