Windows Phone 8.1 – 页面导航
来自Windows Phone 8我从来没有想过会对Windows Phone 8.1代码做很多改变。 基本上我只是想知道如何做页面导航,就像你将如何做到这一点在Windows Phone 8 。 要做到这一点,你应该添加: 
 NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative)); 
 但该代码不适用于Windows Phone 8.1 。 
 有人可以帮我这个吗? 如果可能,请提供所有新的Windows Phone 8.1方法的链接或文档。 
在Windows Phone 8.1中,页面导航方法如下所示:
 Frame.Navigate(typeof(SecondPage), param); 
这意味着你将启动到“SecondPage”,并传递“param”(一个基于对象的类)。
如果你不需要传递任何参数,你可以使用这个:
 Frame.Navigate(typeof(SecondPage)); 
您可以find此MSDN链接的文档
如果你想回去,你可以使用:
 if(this.Frame.CanGoBack) { this.Frame.GoBack(); } 
如果你想返回点击返回button,你需要覆盖hardwarebutton事件:
 HardwareButtons.BackPressed += HardwareButtons_BackPressed; void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { Frame rootFrame = Window.Current.Content as Frame; if(rootFrame != null && rootFrame.CanGoBack) { rootFrame.GoBack(); e.Handled = true; } } 
确保将e.Handled设置为true。
 // Navigation Without parameters this.Frame.Navigate(typeof(SecondPage)); // Navigation with parameters this.Frame.Navigate(typeof(SecondPage),MyParameters); 
发送多个参数:它的回答相当晚,但可能帮助某人。 您可以创build一个自定义类,在其中设置参数,并将其对象作为参数发送到目标页面。
例如。 你的自定义类:
 public class CustomDataClass { public string name; public string email; } CustomDataClass myData = new CustomDataClass(); myData.name = "abc"; myData.email = "abc@hotmail.com"; Frame.Navigate(typeof(SecondPage), myData); 
然后在目标页面上,你可以在OnNavigatedTo函数中像这样获取:
 protected override void OnNavigatedTo(NavigationEventArgs e) { CustomDataClass myData2 = e.Parameter as CustomDataClass; string name = myData2.name; string email = myData2.email; } 
希望能帮助到你。