Universal Windows Platform appでタイトルバーに戻るボタンを出す方法 - かずきのBlog@hatenaokazuki.hatenablog.com
先日、UWP appのタイトルバーに戻るボタンを出す方法を書きましたが、ストアのアプリを見てると戻れないときは戻るボタン出さないようになってるっぽいです。
ということで、そういう風にハンドリングするにはどうするかというのを紹介します。
とりあえず、戻れるときは戻るボタンを出すということなので、こんなメソッドを用意します。
privatevoid UpdateBackButtonState() { var rootFrame = (Frame)Window.Current.Content; SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = rootFrame.CanGoBack ? AppViewBackButtonVisibility.Visible : AppViewBackButtonVisibility.Collapsed; }
そして、起動時と画面遷移後にこのメソッドを呼ぶようにします。App.xaml.csのOnLaunchedでrootFrameを作ったあとくらいにこんなコードを足します。
this.UpdateBackButtonState(); rootFrame.Navigated += (_, __) => this.UpdateBackButtonState(); SystemNavigationManager.GetForCurrentView().BackRequested += (_, args) => { if (rootFrame.CanGoBack) { rootFrame.GoBack(); args.Handled = true; } };
適当に2画面作って画面遷移させるようにして様子を見ます。
起動直後の画面では戻るボタンが出ません。
画面遷移すると戻るボタンが出ます。当然ボタンを押すと戻ります。