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-页面导航

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

希望能有所帮助。