博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PhoneApplicationFrame以及设置Obscured/Unobscured的event handler
阅读量:5910 次
发布时间:2019-06-19

本文共 995 字,大约阅读时间需要 3 分钟。

 

简单描述Sliverlight程序,就是在一个Frame里不停地换Page。在App.xaml.cs里,那个RootFrame(VisualRoot)就是PhoneApplicationFrame类型。

MSDN上关于PhoneApplicationFrame的解释已经做得简洁易读:

我就不再赘述了,只简单总结一下:

PhoneApplicationFrame掌管着:

页面上方的Status Bar和下方的Application Bar

监听事件:页面方向的切换(Portrait/Landscape),Back按钮被按下,由来电等触发的Obscured/UnObscured等。其中大多事件都能由Page监听,在XAML里直接指定event handler就很方便,但是Obscured/UnObscured事件无法在Page中找到,这才需要在code behind里用到PhoneApplicationFrame,代码如下:

PhoneApplicationFrame frame = (PhoneApplicationFrame)Application.Current.RootVisual;frame.Obscured += new EventHandler
(frame_Obscured);frame.Unobscured += new EventHandler(frame_Unobscured);

 

当Obscured发生时,无法知道具体由什么中断的,只能知道是不是由锁屏中断的:

void frame_Obscured(object sender, ObscuredEventArgs e){    if (e.IsLocked) // 仅能判断是否是锁屏    {    }}
Obscured事件触发的时机

例如当电话来的时候就会触发Obscured事件,如果你正在玩游戏之类的,便可以在obscured的hander中使游戏暂停。这时候还没触发Deactived事件,只有当用户按下接听按钮时,才会触发Deactived事件。如果是锁屏的话,Obscured事件也会先于Deactivated事件发生。

转载于:https://www.cnblogs.com/dc10101/archive/2011/12/01/2271224.html

你可能感兴趣的文章
关于Vue.js面试题汇总
查看>>
微信全局登录设计与实现
查看>>
三、Mac平台下集成 FFmpeg 框架
查看>>
关于Xcode10中libstdc报错问题的解决
查看>>
微信小程序第三方开发需要注意的点
查看>>
大话爬虫的实践技巧
查看>>
react-native 学习心得
查看>>
[译]使用 Siesta 处理 Swift 网络请求
查看>>
Android 中的子线程解析
查看>>
IM即时通讯项目讲解(一) 实现类似qq微信表情面板无缝切换
查看>>
iOS网络基础 实战进阶篇
查看>>
aidl跨进程通讯
查看>>
以太坊教程:搭建环境、编写编译一个智能合约
查看>>
Kafka简介
查看>>
java编程——高并发大容量NoSQL解决方案探索
查看>>
深入理解-CSS内联元素之font-size
查看>>
自己手撸一个符合Promise/A+的Promise
查看>>
Qtum量子链周报(10月8日-10月14日)
查看>>
初识Mpvue
查看>>
使用ELK构建分布式日志分析系统
查看>>