我遇到了 App.Xaml.cs 具有以下代码的问题:
var gamePage = Window.Current.Content as Frame;
// Do not repeat app initialization when the Window already has content,
// just ensure that the window is active
if (gamePage == null)
{
// Create a main GamePage
gamePage = new Frame();
if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
{
// TODO: Load state from previously suspended application
}
// Place the GamePage in the current Window
Window.Current.Content = gamePage;
gamePage.Navigate(typeof(MainMenu));
}
// Ensure the current window is active
Window.Current.Activate();
这对于应用程序初始化来说是相当标准的。这也与 Microsoft 概述您应该这样做的方式相同:
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh771188.aspx
但是,当我再次调用框架时(在这种情况下是在 OnNavigateTo 中,因为现在我想确保可以切换页面,这将在稍后移动)它什么也不做,而是位于同一页面上。换句话说如下:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var gamePage = Window.Current.Content as Frame;
gamePage.Navigate(typeof(GamePage));
}
但是,我不能像 Microsoft 推荐的那样调用 this.Frame,这可能是也可能不是问题。
因此,回顾一下,问题是我无法使用加载到 Window.Current.Content 中的标准 Frame 对象从一个页面导航到另一个页面。我可以验证应用程序是否进入 OnNavigateTo 并且第一页切换工作正常。但是,当我再次尝试切换页面时,它不再起作用了。
有任何想法吗?任何帮助是极大的赞赏!