如何检查Windows Phone 8.1 Universal应用程序中的后退按钮是否触发了OnNavigatedTo?

Nie*_*els 3 c# winrt-xaml windows-phone-8.1 win-universal-app

我想这是一个简单的问题,但我似乎无法弄清楚..

我有一个MainPage.xaml,它在OnNavigatedTo事件上运行代码.如果用户使用硬件反向导航键导航到此页面,如何禁用此功能?

MainPage => Page2 使用HW BACKKEY => MainPage.xaml //不要运行代码

MainPage => Page3 => MainPage.xaml //运行代码

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (!TheUserNavigatedBackFromAnotherPageUsingTheBackkey)
    {
        // RUN FRESH CODE
    }
    else
    {
        // DO NOTHING
    }  
}
Run Code Online (Sandbox Code Playgroud)

亲切的问候,尼尔斯

Igo*_*lic 10

您可以检查NavigationEventArgs的NavigationMode.

if (e.NavigationMode == NavigationMode.Back)
{

 // navigation is going backward in the stack

}
Run Code Online (Sandbox Code Playgroud)

这意味着导航在堆栈中向后移动,但并不一定意味着按下后退按钮.例如,通过调用Frame.GoBack()方法,它仍然会向后导航.