我创建了一个Windows Phone 8.1项目,其中我在代码的不同部分中使用了以下代码:
if (this.NavigationService.CanGoBack)
{
this.NavigationService.RemoveBackEntry();
}
我尝试将此代码移植到通用应用程序,我收到一条错误消息,指出无法解析NavigationService。如何在通用应用程序世界中处理导航?
答案 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。