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

本文关键字:视图 之间 导航 Windows XAML | 更新日期: 2023-09-27 18:21:29

我已经尝试了很多方法,但在Windows 10中尝试在一个页面和另一个页面之间导航时,我会遇到一些奇怪的行为。我在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 XAML中的视图之间导航

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