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

时间:2015-11-11 18:41:49

标签: c# xaml windows-10 windows-10-desktop

我尝试了很多方法,但是当尝试在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线程调度程序没有任何区别。

1 个答案:

答案 0 :(得分:2)

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