设置了带有框架的Window.Current.Content,但其他页面无法导航

本文关键字:其他 导航 Content 框架 Current Window 设置 | 更新日期: 2023-09-27 17:49:18

我遇到了一个问题,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();

这是相当标准的一个应用程序初始化。这也与微软概述你应该做的相同:

  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));
    }
然而,我不能调用

。像微软推荐我的框架,这可能是个问题,也可能不是。

所以,重述一下,问题是我不能使用加载到windows . current . content中的标准Frame对象从一个页面导航到另一个页面。我可以验证应用程序确实进入OnNavigateTo和第一页切换工作得很好。但是,当我再次尝试切换页面时,它不再工作了。

任何想法?任何帮助都非常感谢!

设置了带有框架的Window.Current.Content,但其他页面无法导航

gamePad设置为App.xaml.cs类的属性(public static Frame gamePage = new Frame();),然后执行如下操作:

 var gamePad = App.gamePage;

在其他页面。这就是MVVM的导航方式