Visual Studio VC++ 2017のUWPでの画面遷移
VC++でのNavigate
あらかじめ作っておいた「空白のページ」の名前はpage2
作成されたイベントメソッド内に下記を記述する。
Frame->Navigate(page2::typeid);
page2が表示されたらタイトルバーに戻るボタンを表示させる。
OnNavigatedToという仮想関数をoverrideで用意する。
void app::page2::OnNavigatedTo(NavigationEventArgs^ e) { using namespace Windows::UI::Core; SystemNavigationManager::GetForCurrentView()->AppViewBackButtonVisibility = Frame->CanGoBack ? AppViewBackButtonVisibility::Visible : AppViewBackButtonVisibility::Collapsed; }
タイトルバーに戻るボタンイベントを作成する。
アプリケーションの基盤であるAppクラスにmodoru関数を追加する。
void app::App::modoru(Object ^ sender, Windows::UI::Core::BackRequestedEventArgs ^ e) { //throw ref new Platform::NotImplementedException(); Frame^ rootFrame = dynamic_cast<Frame^>(Window::Current->Content); if (rootFrame->CanGoBack && e->Handled == false) { e->Handled = true; rootFrame->GoBack(); } }
これは、Appクラスの、protected側に追加した。 同じくAppクラスのOnLaunched側でBackRequestedとmodoru関数を紐付ける
void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) { ///省略 using namespace Windows::UI::Core; SystemNavigationManager::GetForCurrentView()->BackRequested += ref new Windows::Foundation::EventHandler<Windows::UI::Core::BackRequestedEventArgs^>(this,&App::modoru); }