在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使用与8.1相同的方法。
如果您在Visual Studio中创建一个新项目并打开App.xaml.cs,您可以找到OnLaunched
方法。在该方法中,您可以看到Frame
的实例已创建并分配给Window.Current.Content
。Frame
将帮助您管理整个导航。这个方法的最后是导航到MainPage。
rootFrame.Navigate(typeof(MainPage), e.Arguments);
如果你想从主页导航到第二页,你必须使用:
Frame.Navigate(typeof(SecondPage));
要返回主页,只需致电:
if (Frame.CanGoBack)
{
Frame.GoBack();
}