locked
关于后退键二次退出和在二级页面中后退键关闭可以隐藏的列表 RRS feed

  • 问题

  • 我在初始的main主页面中注册了后退键,并且设置了二次退出的代码。但是并不是完全的退出只是,返回到主页面。后台还是依旧存在的。请问怎么样子才能清理后台?完全的退出。

    另外问一下,在WP8.1中消息框有几个?目前我就知道一个MessageDialog。  但是  用这个消息框所谓二次退出的提示消息框 比较消耗内存。易卡。

    我在二级页面中,有一个ScrollViewer列表,如果打开了,我想用后退键关闭,但是二级页面用后退键,就会直接返回到主页面。怎么才能不让退回到主页面,而是隐藏ScrollViewer列表呢? 


    2015年10月24日 7:51

答案

  • 前两个问题已经解决了吧,最后一个问题,是因为项目默认使用了一个NavigationHelper类,这个类新建项目的时候是会默认添加的,已经在你的二级页面中注册了Windows.Phone.UI.Input.HardwareButtons.BackPressed这个事件,所以你需要将二级页面中默认添加的NavigationHelper代码删除,自己来写Windows.Phone.UI.Input.HardwareButtons.BackPressed事件即可。

    大概如下:

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

    在HardwareButtons_BackPressed里写:

    if(scrollViewer是打开的)

    {

    //需要以下语句

    e.Handled = true;

    关闭你的scrollViewer

    }

    else

    {

    像其他二级页面一样返回主页面

    }

    • 已标记为答案 ARM830 2016年7月23日 2:57
    2015年10月29日 1:51

全部回复

  • 你好,

    据我所知,在windows 10中,可以使用App.current.Exit() 自动的关闭程序。除非必要,否则不建议这么做。但是在Windows 8.1中不能实现这样的效果。详细的信息请参考这个帖子:https://social.msdn.microsoft.com/Forums/windowsapps/en-US/6ad4afcb-bc82-488d-8400-960b9407c43e/w81c-application-not-removed-from-task-managerbar?forum=wpdevelop  

    除了MessageDialog,在Windows Phone 8.1中,还可以使用Flyout 和 Popup。

    Regards,

    Qiang Hong

    2015年10月27日 7:37
  • 嗯,我知道了。在WP中能使用  Application.Current.Exit()作为完全退出。 其他的消息我知道了。 我用了Flyout。  不管怎么样谢谢了
    2015年10月28日 12:58
  • 前两个问题已经解决了吧,最后一个问题,是因为项目默认使用了一个NavigationHelper类,这个类新建项目的时候是会默认添加的,已经在你的二级页面中注册了Windows.Phone.UI.Input.HardwareButtons.BackPressed这个事件,所以你需要将二级页面中默认添加的NavigationHelper代码删除,自己来写Windows.Phone.UI.Input.HardwareButtons.BackPressed事件即可。

    大概如下:

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

    在HardwareButtons_BackPressed里写:

    if(scrollViewer是打开的)

    {

    //需要以下语句

    e.Handled = true;

    关闭你的scrollViewer

    }

    else

    {

    像其他二级页面一样返回主页面

    }

    • 已标记为答案 ARM830 2016年7月23日 2:57
    2015年10月29日 1:51
  • 但是,这个ScrollViewer是在二级页面中的啊,我在主页面是么有办法判断这个ScrollViewer是否打开了?  这个方法我之前也有使用,只能在主页面使用。我没有办法主页面中判断ScrollViewer这个是否打开
    2015年10月29日 12:48
  • 你的问题不就是在二级页面按返回键的时候不返回主页面而是关闭ScrollViewer吗?怎么又要在主页面控制二级页面的ScrollViewer了?

    能否将你的问题表述清楚。

    2015年10月30日 16:27
  • 对不起哦. 可能是我没有讲明白。

    有 A-B这两个页面。A为主页面,B为二级页面。  我在B这个页面有一个ScrollViewer列表。  如果这个列表是打开的,后退键可对其关闭,而且不返回A页面。继续保留在B页面。当ScrollViewer关闭的时候,后退键才可以返回A页面。

    2015年10月31日 17:47
  • 对不起哦. 可能是我没有讲明白。

    有 A-B这两个页面。A为主页面,B为二级页面。  我在B这个页面有一个ScrollViewer列表。  如果这个列表是打开的,后退键可对其关闭,而且不返回A页面。继续保留在B页面。当ScrollViewer关闭的时候,后退键才可以返回A页面。

    那我的那段代码就是这个意思啊,是要写在你的二级页面的代码里,不是主页面里。你再仔细看一下。
    2015年11月2日 6:58