简单描述Sliverlight程序,就是在一个Frame里不停地换Page。在App.xaml.cs里,那个RootFrame(VisualRoot)就是PhoneApplicationFrame类型。
MSDN上关于PhoneApplicationFrame的解释已经做得简洁易读:http://msdn.microsoft.com/en-us/library/ff402536%28v=VS.92%29.aspx
我就不再赘述了,只简单总结一下:
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<ObscuredEventArgs>(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事件发生。
分类:
Windows Phone
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架