Windows Phone 8.1 - 页面导航

Ahm*_*d.C 37 c# windows-phone-8 windows-phone-8.1

来自Windows Phone 8我从未想过将对代码进行大量更改Windows Phone 8.1.基本上我只是想知道如何进行页面导航就像你将如何进行一样Windows Phone 8.要做到这一点,你应该添加:

NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)

但该代码不起作用Windows Phone 8.1.

有人可以帮我这个吗?如果可能,请提供有关所有新Windows Phone 8.1方法的任何链接或文档.

Chr*_*hao 63

在Windows Phone 8.1中,页面导航方法如下所示:

Frame.Navigate(typeof(SecondPage), param);
Run Code Online (Sandbox Code Playgroud)

这意味着您将导航到'SecondPage',并传递'param'(基于对象的类).

如果您不需要传递任何参数,可以使用:

Frame.Navigate(typeof(SecondPage));
Run Code Online (Sandbox Code Playgroud)

您可以找到此MSDN链接的文档

  • 您可以在SecondPage中使用NavigationHelper,这样就不需要添加事件处理程序.例如,您可以创建BasicPage而不是BlankPage作为SecondPage.你会看到它. (6认同)

Har*_*hat 23

如果你想回去,你可以使用:

if(this.Frame.CanGoBack)
{
this.Frame.GoBack();
}
Run Code Online (Sandbox Code Playgroud)

如果要返回单击后退按钮,则需要覆盖硬件按钮事件:

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

        }
Run Code Online (Sandbox Code Playgroud)

确保将e.Handled设置为true.

  • ...不要忘记你可以在应用程序级别执行此操作:http://stackoverflow.com/questions/24335925/windows-phone-8-1-universal-app-terminates-on-navigating-back-from-第二页 (2认同)