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; } 

希望能帮助到你。