none
页面导航问题 RRS feed

  • 问题

  • WP8.1的后退键为什么直接让应用后台而不是导航到上一页?
    后退键的事件怎么写?
    能给代码实例最好,谢谢
    2014年7月28日 7:30

答案

  • 新建页面时,选择“BasicPage”或者“基本页”,就可以解决这个问题。

    因为基本页中默认添加了一个NavigationHelper类,对页面的进入和退出都有处理。对HardwareButtons.BackPressed事件也做了处理。使得后退键按下时,按照页面回退处理。

    如果需要针对后退键做特殊处理,则需要在基本页的页面构造函数中,重新注册BackPressed事件:

    public SomePage()
    {
        this.InitializeComponent();
        this.navigationHelper = new NavigationHelper(this);
        this.navigationHelper.LoadState += this.NavigationHelper_LoadState;
        this.navigationHelper.SaveState += this.NavigationHelper_SaveState;
    
        Windows.Phone.UI.Input.HardwareButtons.BackPressed += (sender, e) =>
        {
            // 这里添加对后退键的特殊处理。
            // 如果默认为页面回退,则不需要注册BackPressed事件
        };
    }

    • 已标记为答案 DandelionI 2014年7月28日 8:14
    2014年7月28日 8:01

全部回复

  • 新建页面时,选择“BasicPage”或者“基本页”,就可以解决这个问题。

    因为基本页中默认添加了一个NavigationHelper类,对页面的进入和退出都有处理。对HardwareButtons.BackPressed事件也做了处理。使得后退键按下时,按照页面回退处理。

    如果需要针对后退键做特殊处理,则需要在基本页的页面构造函数中,重新注册BackPressed事件:

    public SomePage()
    {
        this.InitializeComponent();
        this.navigationHelper = new NavigationHelper(this);
        this.navigationHelper.LoadState += this.NavigationHelper_LoadState;
        this.navigationHelper.SaveState += this.NavigationHelper_SaveState;
    
        Windows.Phone.UI.Input.HardwareButtons.BackPressed += (sender, e) =>
        {
            // 这里添加对后退键的特殊处理。
            // 如果默认为页面回退,则不需要注册BackPressed事件
        };
    }

    • 已标记为答案 DandelionI 2014年7月28日 8:14
    2014年7月28日 8:01
  • 谢谢你的解答
    2014年7月28日 8:16