Windows Phone 8.1-页面导航
本文关键字:导航 1-页 Phone Windows | 更新日期: 2023-09-27 17:59:04
来自Windows Phone 8
,我从未想过会对Windows Phone 8.1
代码进行大量更改。基本上,我只是想知道如何进行页面导航,就像在Windows Phone 8
上一样。要做到这一点,你应该添加:
NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
但该代码不适用于CCD_ 4。
有人能帮我做这个吗?如果可能,请提供有关所有新Windows Phone 8.1
方法的任何链接或文档。
在Windows Phone 8.1中,页面导航方法如下:
Frame.Navigate(typeof(SecondPage), param);
这意味着您将导航到"SecondPage",并传递"param"(一个基于对象的类)。
如果你不需要传递任何参数,你可以使用这个:
Frame.Navigate(typeof(SecondPage));
您可以找到此MSDN链接的文档
如果您想返回,可以使用:
if(this.Frame.CanGoBack)
{
this.Frame.GoBack();
}
如果你想点击后退按钮返回,你需要覆盖硬件按钮事件:
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);
要发送多个参数:现在回答已经很晚了,但可能会帮助到别人。您可以创建一个自定义类,在其中设置参数,并将其对象作为参数发送到目标页面。
例如。您的自定义类别:
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;
}
希望能有所帮助。