win 10 开发:后退键的重写

win 10 开发中,做移动端时,发现原来wp8.1的时候可以重写后退键的,现在居然不行了。自己百度了下,原来是微软考虑到多屏的统一,以及在平板,pc等设备上的体验。默认没有这一api.这。。。。我们的双击退出呢?用户们需要啊!怎么办呢?别急,微软还是想到了这一点的。微软同学把它作为了扩展api.  

找到该扩展api的具体方法如下:

1.添加引用

2.选择Universal windows – 扩展



3.找到Windows Mobile Extension for the  UWP



现在就可以用Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;重写返回键了。


我们重写下返回键。用按下返回键弹窗测试重写是否成功:


private async void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)

{

e.Handled = true;

await new MessageDialog("hello").ShowAsync();

}


这样看貌似成功了!!是吗?

但是要记住还有windows桌面版啊!因为桌面版里没有此API,所以直接使用会出问题!!!

请看下图,在pc 上运行时:


所以,我们不能直接使用原来的方法了,需要用

Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")

运行时判断是否有该API的支持。

最终。

举例说明 按下返回键弹窗提示 的方法如下:

if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))

        {


            Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed;

            Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;

        }

 private async void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)

{

e.Handled = true;

await new MessageDialog("hello").ShowAsync();

}


这样,我们才算完成了后退键的重写。win10 开发刚刚开始,所以大家有什么好的建议和问题也可以共同交流,欢迎加群 193148992 共同学习交流。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,041评论 2 89
  • 接纳自己与别人的相同点,接纳自己与别人的不同点,就像一年有四季 ,各有各的不同。尝试用文字去梳理自己的感受,去沉淀...
    b49f7e0ba112阅读 191评论 0 0
  • 几经折磨,终于找到了一个可以解决证书无效的方法。参考:证书失效特效药
    huixiansheng阅读 179评论 0 0
  • 出生在山里头的我,未见海之前就喜欢它了,那时年轻,懵懂无畏,对海只有好奇和幻想。后来,我第一次乘飞机飞越太平洋之后...
    一峪百川阅读 259评论 0 6