2016-05-31 1 views
1

私はこの記事を使用してUWPアプリケーションにBackButtonを追加しました。http://www.wintellect.com/devcenter/jprosise/handling-the-back-button-in-windows-10-uwp-apps次に、私は自分のアプリケーションにExtendedSplashScreenを追加したかったのです。だから私はこの記事を使った:http://www.c-sharpcorner.com/UploadFile/020f8f/universal-windows-platform-and-extended-splash-screen/Extended SplashScreenを表示すると私のバックボタンが削除されました。C#UWP

しかし、私がExtendedSplashScreenを追加したとき、私はMainPageの後に開いているページからBackButtonが消えてしまった。私はそれが私がルートフレームと呼んでいるものに関連していることを知っていますが、私は何を変えなければならないか分かりません。どんな助け?

答えて

2

問題ここにいることがあるApp.xaml.csでは、rootFrameグローバル変数を作りますDismissExtendedSplashメソッドでは、作成者は新しいrootFrameを作成し、Window.Current.Contentと設定します。これにより、App.xaml.csで作成されたrootFrameが上書きされるため、戻るボタンを処理するコードは機能しません。この問題を解決するには、メソッドでを使用して、次のようにrootFrameを取得してください。

private async void DismissExtendedSplash() 
{ 
    await Task.Delay(TimeSpan.FromSeconds(3)); 
    // set your desired delay 
    //rootFrame = new Frame(); 
    //MainPage mainPage = new MainPage(); 
    //rootFrame.Content = mainPage; 
    //Window.Current.Content = rootFrame; 
    //rootFrame.Navigate(typeof(MainPage)); // call MainPage 
    ((Window.Current.Content) as Frame).Navigate(typeof(MainPage)); 
} 
1

DismissExtendedSplashのコードは、フレームとOnNavigatedイベントをオーバーライドします。

少しトリックを使うことができます。

public static Frame rootFrame; 

も追加します:

public static new App Current 
{ 
    get { return Application.Current as App; } 
} 

今、あなたのDismissExtendedSplashは次のように考えられます。

async void DismissExtendedSplash() 
{ 
    await Task.Delay(TimeSpan.FromSeconds(3)); // set your desired delay 
    App.rootFrame.Navigate(typeof(MainPage)); 
} 
関連する問題