在Windows Phone 8.1中按下硬件后退按钮时如何进入上一页?

时间:2015-07-23 06:59:59

标签: windows-phone-8 windows-phone-8.1 back-button

我正在windows phone app中创建somany页面。当按下后退按钮时如何进入上一页。当我是clcik后退按钮时,它将转到第一页。

例如我在第4页。每当我cilck backbutton我想去第3页但它会转到第1页。 我使用下面的代码。

public selectbus()
    {
        this.InitializeComponent();


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

    }

    void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
    {
        Frame rootFrame = Window.Current.Content as Frame;
        if (rootFrame != null && rootFrame.CanGoBack)
        {
             rootFrame.GoBack();
            e.Handled = true;


        }
    }

请有人帮助我。

2 个答案:

答案 0 :(得分:1)

首先,检查您是否按以下方式导航(例如,从第1页到第2页):

this.Frame.Navigate(typeof(NameOfYourPage));

然后,在您要添加HardwareButtons_BackPressed的页面上,检查您是否有以下几行:

using Windows.UI.Xaml;
using Windows.Phone.UI.Input;

然后,您的代码应如下所示:

//In constructor
HardwareButtons.BackPressed += HardwareButtons_BackPressed;

//Later in code
void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
    Frame frame = Window.Current.Content as Frame;
    if (frame == null)
    {
        return;
    }
    if (frame.CanGoBack)
    {
        frame.GoBack();
        e.Handled = true;
    }
}

这对我有用,它也适合你!

答案 1 :(得分:0)

订阅App.xaml.cs中的BackPressed事件,而不是其他地方。看看这里接受的答案Windows Phone 8.1 Universal App terminates on navigating back from second page?