在 Windows 10 XAML 中的视图之间导航

Navigating between views in Windows 10 XAML

我已经尝试了多种方法来解决这个问题,但是在 Windows10 中尝试在一个页面和另一个页面之间导航时,我遇到了一些奇怪的行为。我在 app.xaml.cs:

中显示我的第一页
View.MainPageView mp = new View.MainPageView();
Window.Current.Content = mp;

这样可以正常显示主页;然而,我有一个命令可以有效地为我的第二页做同样的事情:

View.SecondView dv = new View.SecondView();
Window.Current.Content = dv;

出现的情况是它显示了第二页,但它是空白的。当我尝试使用 XAML Spy 检查它时,它显示页面在那里;但是,它根本没有任何内容(即没有控件显示)。

Windows 10 有什么特别之处可以解释这种情况,或者,以这种方式覆盖内容是否有什么可以解释这种行为的?

编辑:

问题似乎是由使用绑定命令引起的,而不是为了导航而进行的处理;以下代码适用于点击事件:

Frame rootFrame = Window.Current.Content as Frame;

rootFrame.Navigated += RootFrame_Navigated;
rootFrame.Navigate(typeof(View.SecondView), null);            

但是当从绑定命令调用时,虽然它仍然显示视图,但它始终是空白的。我最初认为这可能与调用线程有关,但使用 UI 线程调度程序没有任何区别。

Windows 10 使用与 8.1 相同的方法。

如果您在 Visual Studio 中创建一个新项目并打开 App.xaml.cs 您可以找到 OnLaunched 方法。在此方法中,您可以看到 Frame 的实例已创建并分配给 Window.Current.ContentFrame 将帮助您管理整个导航。此方法的末尾是导航到 MainPage。

rootFrame.Navigate(typeof(MainPage), e.Arguments);

如果你想从主页导航到第二页,你必须使用:

Frame.Navigate(typeof(SecondPage));

要返回主页只需调用:

if (Frame.CanGoBack)
{
    Frame.GoBack();
}