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; }
希望能帮助到你。