通用应用程序中的NavigationService

时间:2014-04-16 22:57:46

标签: navigation win-universal-app

我创建了一个Windows Phone 8.1项目,其中我在代码的不同部分中使用了以下代码:

if (this.NavigationService.CanGoBack)
{
    this.NavigationService.RemoveBackEntry();
}

我尝试将此代码移植到通用应用程序,我收到一条错误消息,指出无法解析NavigationService。如何在通用应用程序世界中处理导航?

1 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,也找不到NavigationSerice。

但经过一番搜索后,我找到了Navigate的解决方案,希望你能用到这样的东西。

private void HyperlinkButton_Click(object sender, RoutedEventArgs e)
{
    this.Frame.Navigate(typeof(BasicPage2));
}

有关详细信息,请参阅this页面。

BackButton在Windows 8.1上完全不同,您不需要删除BackEntry()。但是,当你想要导航回来时,你必须添加一些代码。

例如:

如果您从主页导航到Page1,并且您希望使用(硬件)BackButton从Page1导航回主页,您需要将以下内容添加到主页:

在构造函数中添加:

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

创建此方法:

 void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
    {
        if (Frame.CanGoBack)
        {
            Frame.GoBack();
            //Indicate the back button press is handled so the app does not exit
            e.Handled = true;
        }
    }

现在,您的应用使用BackButton从Page1导航回Mainpage。