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 が推奨するようなフレームは、問題になる場合とそうでない場合があります。
要約すると、問題は、Window.Current.Content に読み込まれた標準の Frame オブジェクトを使用してページ間を移動できないことです。アプリが OnNavigateTo に入り、最初のページ切り替えが正常に機能することを確認できます。しかし、もう一度ページを切り替えようとすると、もう機能しません。
何か案は?どんな助けでも大歓迎です!