windows phone8.1页面导航 物理返回键
2015-01-19 11:08
239 查看
Windows Phone8.1页面导航
作为一名windows phone8.1初学者,在我自己新开发的一个项目中,有经历过这么一个事情,比如程序运行,进入页面一,然后继续进入页面二,进入页面三。这时候我如果按物理返回键,直接退出程序了(其实是将程序挂起了,可以去后台看看,明显看到程序还在后台“运行”),在8.1中 物理返回键只是将程序挂起,不会返回到另一个界面。在网上查询了一下,这是微软比较坑了,windows phone8.1采用的将物理返回键设为程序挂起,而不是退出程序或者返回上一个界面。要解决这种问题,其实很简单,就是在程序中添加虚拟物理键的返回事件,就是给他说,返回时候要干什么。
在全局App类中,初始化时候,注册物理返回键的事件。像这样
public App() { this.InitializeComponent(); this.Suspending += this.OnSuspending; //注册物理返回键事件 HardwareButtons.BackPressed += HardwareButtons_BackPressed; } async void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { //获取当前的激活的窗口的框架 Frame frame = Window.Current.Content as Frame; //判断是否为空,是否能返回,其实就是主页面了,主页面肯定不能返回嘛 if (null != frame && (!frame.CanGoBack)) { //设置事件已经处理 e.Handled = true; //设置在最后一个界面跳出弹出窗口 var messageDig = new MessageDialog("确定退出吗?"); var btn_OK = new UICommand("确定"); var btn_NO = new UICommand("取消"); messageDig.Commands.Add(btn_OK); messageDig.Commands.Add(btn_NO); //展示窗口,获取按钮是否退出 var result = await messageDig.ShowAsync(); //如果是确定退出就直接让应用程序退出 if(null != result && result.Label == "确定") { Application.Current.Exit(); } } //如果可以返回,就返回上一个界面 else if (frame.CanGoBack) { frame.GoBack(); e.Handled = true; } }
程序运行效果图,如果是主页面,按返回键,就弹出那个窗口。
很简单吧(欢迎吐槽,初学者,今天查看突然发下没有效果图)
相关文章推荐
- 使用《UrlHash/锚点》解决移动设备中的单页面应用的物理[返回键]带来的困扰
- 指定页面页面导航隐藏并开启页面滑动返回
- React Native 指定页面物理返回监听
- 微信物理返回刷新页面
- 使用《UrlHash/锚点》解决移动设备中的单页面应用的物理[返回键]带来的困扰
- 物理返回刷新页面
- 混合开发的大趋势之一React Native之页面跳转(2)+物理返回+特定平台代码
- 混合开发的大趋势之一React Native之页面跳转(2)+物理返回+特定平台代码
- 自己遇到的 导航控制器 push了好几层 让他一次返回到前面的指定页面 不一定是根页面
- iOS 导航返回到指定页面、一次返回到根试图或者让它一次性pop出几个页面
- 实现单页面导航效果的jQuery插件 - SMINT
- iOS自定义导航栏标题和返回按钮标题
- 自定义封装导航栏左右按钮点击事件和特定风格的控制器供多个控制器继承—— 当很多导航页面有相似的导航条时
- 用javascript返回前一个页面
- iOS-自定义导航栏后侧滑返回功能失效
- 用TreeView控件在无限极节点上用Menu控件做导航菜单显示用户当前所在的页面的位置
- jquery小效果:新浪游戏右侧导航菜单 (页面效果)
- 如何点击按钮弹出新窗口,输入数据后返回并刷新页面?
- IOS 页面返回后 不刷新
- iOS 在App内返回到指定页面