自己写方法处理WP(RT)后退键事件处理
不用微软的NavigationHelper,自己写方法处理WP后退键事件
在WP8.1(RT)程序中,你会发现按下后退键时,应用会直接退出,变为后台运行,这是因为RT与Silverlight对后退键的处理不同,在windowsRT应用中需要特殊处理,这里没有使用微软封装好的NavigationHelper
1.进入页面时添加后退键处理事件,退出当前页面移除
方法一:
在页面的构造函数中,添加页面的Load和Unload事件,分别添加和移除对后退键的处理
public DetailsPage()
{
InitializeComponent();
//缓存页面
NavigationCacheMode = NavigationCacheMode.Required;
//进入页面,注册后退键处理方法
this.Loaded += (sender, e) =>
{
HardwareButtons.BackPressed += HardwareButtons_BackPressed;
};
// 退出页面,取消对后退键处理方法的注册
this.Unloaded += (sender, e) =>
{
HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
};
}
方法二:
重写页面的“ OnNavigatedTo ”事件和 “ OnNavigatedFrom ”事件,在OnNavigatedTo 事件中注册 后退键处理事件,在 OnNavigatedFrom 事件中取消注册
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// 注册后退键处理事件
// Windows.Phone.UI.Input.HardwareButtons.BackPressed .
HardwareButtons.BackPressed += HardwareButtons_BackPressed;
} protected override void OnNavigatedFrom(NavigationEventArgs e)
{
//取消后退键处理程序的注册
HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
base.OnNavigatedFrom(e);
}
2.在后退键事件处理结束后设置 Handled为true
后退键处理事件Sample,注意:在事件最后一定要设置Handled为true!!否则可能会引起事件的冒泡传递,发生你不想看到的状况
private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
//判断是否可以后退
if (Frame.CanGoBack)
{
//退到上一个页面
Frame.GoBack();
}
else
{
//跳转到程序首页
Frame.Navigate(typeof(MainPage));
}
//设置事件状态为已处理
//重要!!
e.Handled = true;
}
自己写方法处理WP(RT)后退键事件处理的更多相关文章
- 【Win10开发】处理PC上的后退键
我们知道在win10手机上和平板上都会有后退键,那么PC上该怎么办呢?没关系我们慢慢揭晓. 如果你已经是UWP的忠实用户,那么肯定会见到如下的后退键. 那么我们如何来做出来呢?, 我们首先打开App. ...
- WP开发笔记——阻止Back后退键
WP7中如何阻止Back后退键的后退事件呢? WP7上提供了物理的Back按键,获取Back物理键按下可以通过PhoneApplicationPage的BackKeyPress事件. 具体实现方法如下 ...
- 按后退键退出Android程序
主要的目的是按后退键的时候,让程序能够退出. 实现起来的思路: 1.捕获后退键被按了这个事件. Java代码 @Override public boolean onKeyDown(int keyCo ...
- win10桌面和手机的扩展API,判断是否有实体后退键API
喜大普奔的win10 uap开发预览版终于出了,这次更新跟8.1的变化不是很大,但是将原本win8.1和wp8.1uap的分项目的形式,改为了整合成一个项目,经过一次编译打包成一个appx包,实现了无 ...
- 检查浏览器url改变,处理ajax前进和后退键
在用ajax获取数据,不刷新页面情况下,保持前进后退按钮功能,网页端兼容性最好的方式如下: 首先url后面参数用# 如http://www.xxx.com/#txf; 使用改变location.ha ...
- Win(Phone)10开发第(1)弹,桌面和手机的扩展API,还我后退键
喜大普奔的win10 uap开发预览版终于出了,这次更新跟8.1的变化不是很大,但是将原本win8.1和wp8.1uap的分项目的形式,改为了整合成一个项目,经过一次编译打包成一个appx包,实现了无 ...
- TQ2440烧写方法总结
USB烧写 接线:需要连接串口线.USB下载线和电源线. 软件:USB转串口驱动(因为现在的笔记本上一般都没有串口).USB下载驱动和DNW. 网络烧写 接线:需要连接串口线.网线和电源线. 软件:T ...
- android中的后退键——onBackPressed()的使用
转自:http://blog.sina.com.cn/s/blog_5085156c0101725e.html 很多网友不明白如何在Android平台上捕获Back键的事件,Back键是手机上的后退键 ...
- 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(4)- OTP及其烧写方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RTxxx系列MCU的OTP. 在i.MXRTxxx启动系列第二篇文章 Boot配置(ISP Pin, OTP) 里痞子 ...
随机推荐
- archlinux 下 nignx + php 出现 no input file specified
奇葩的问题,配置 nginx + php + mysql 后,加一个站点: server { listen 80; server_name wei.abc.com; root /www/wei.abc ...
- HTML CSS——margin和padding的学习
你在学习margin和padding的时候是不是懵了,——什么他娘的内边距,什么他娘的外边距.呵呵呵,刚开始我也有点不理解,后来通过查资料学习总算弄明白了,现在我来谈一下自己对margin和paddi ...
- Careercup 论坛上较有意思的题目整理
# 数据结构类 ### 线段树 segment tree http://www.careercup.com/question?id=5165570324430848 找区间内的value的个数 二维线 ...
- SNF开发平台WinForm之十三-单独从服务器上获取PDF文件进行显示-SNF快速开发平台3.3-Spring.Net.Framework
1运行效果: 2开发实现: 如果需要单独显示PDF文件时用下面代码去实现,指定url地址. 地址: . 获取附件管理的实体对象: List<KeyValuePair<string, obj ...
- C#中,接口不能被实例化,但存在特例
看一个例子: interface IFoo { string Message { get; } } 则, IFoo obj = new IFoo("abd"); 将会报错:接口不能 ...
- Unity3D 角色(物体) 移动方法 合集
1. 简介 在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position. 2. 通过Transform组件移动物体 Transform 组件用于描述物体在 ...
- hash函数为什么要选择对素数求余?
常用的hash函数是选一个数m取模(余数),这个数在课本中推荐m是素数,但是经常见到选择m=2^n,因为对2^n求余数更快,并认为在key分布均匀的情况下,key%m也是在[0,m-1]区间均匀分布的 ...
- 领域实体框架Rafy2 发布了
在2009年我在codeplex发布了1.0版本OpenExpressApp,下载地址:http://openexpressapp.codeplex.com/.OEA 1.0 作为我十多年开发工作的一 ...
- java中this关键字
1. 当成员变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量.(this是当前对象自己) 如:public class Hello { String s = &q ...
- SQL Server临界点游戏——为什么非聚集索引被忽略!
当我们进行SQL Server问题处理的时候,有时候会发现一个很有意思的现象:SQL Server完全忽略现有定义好的非聚集索引,直接使用表扫描来获取数据.我们来看看下面的表和索引定义: CREATE ...