From bd22807420b4d70daece3c14c0d854d587dc168a Mon Sep 17 00:00:00 2001 From: A A Date: Mon, 8 Apr 2019 19:38:19 -0400 Subject: [PATCH] Fix to this issue: Clicking on the same element in the hamburger view should re-open that view, like the menu items do #437 --- src/Calculator/Views/MainPage.xaml | 1 + src/Calculator/Views/MainPage.xaml.cpp | 14 ++++++++++++++ src/Calculator/Views/MainPage.xaml.h | 2 ++ 3 files changed, 17 insertions(+) diff --git a/src/Calculator/Views/MainPage.xaml b/src/Calculator/Views/MainPage.xaml index 6136f42f..863d76ce 100644 --- a/src/Calculator/Views/MainPage.xaml +++ b/src/Calculator/Views/MainPage.xaml @@ -109,6 +109,7 @@ PaneOpened="OnNavPaneOpened" PaneOpening="OnNavPaneOpening" SelectionChanged="OnNavSelectionChanged" + ItemInvoked="OnNavItemInvoked" TabIndex="1" UseSystemFocusVisuals="True"> diff --git a/src/Calculator/Views/MainPage.xaml.cpp b/src/Calculator/Views/MainPage.xaml.cpp index 14c406a0..21d28a52 100644 --- a/src/Calculator/Views/MainPage.xaml.cpp +++ b/src/Calculator/Views/MainPage.xaml.cpp @@ -601,3 +601,17 @@ void MainPage::AnnounceCategoryName() NarratorAnnouncement^ announcement = CalculatorAnnouncement::GetCategoryNameChangedAnnouncement(categoryName); NarratorNotifier->Announce(announcement); } + +void MainPage::OnNavItemInvoked(_In_ Microsoft::UI::Xaml::Controls::NavigationView^ sender, _In_ Microsoft::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs^ e) +{ + auto item = dynamic_cast(e->InvokedItemContainer); + if (item != nullptr) + { + auto selectedItem = static_cast(item->DataContext); + + if (selectedItem->Mode == Model->Mode) + { + NavView->IsPaneOpen = false; + } + } +} diff --git a/src/Calculator/Views/MainPage.xaml.h b/src/Calculator/Views/MainPage.xaml.h index 96a5ff76..ba26160d 100644 --- a/src/Calculator/Views/MainPage.xaml.h +++ b/src/Calculator/Views/MainPage.xaml.h @@ -52,6 +52,8 @@ namespace CalculatorApp void OnNavPaneOpened(_In_ Microsoft::UI::Xaml::Controls::NavigationView^ sender, _In_ Platform::Object^ args); void OnNavPaneClosed(_In_ Microsoft::UI::Xaml::Controls::NavigationView^ sender, _In_ Platform::Object^ args); void OnNavSelectionChanged(_In_ Platform::Object^ sender, _In_ Microsoft::UI::Xaml::Controls::NavigationViewSelectionChangedEventArgs^ e); + void OnNavItemInvoked(_In_ Microsoft::UI::Xaml::Controls::NavigationView^ sender, _In_ Microsoft::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs^ e); + void OnAboutButtonClick(_In_ Platform::Object^ sender, _In_ Windows::UI::Xaml::Controls::ItemClickEventArgs^ e); void OnAboutFlyoutOpened(_In_ Platform::Object^ sender, _In_ Platform::Object^ e);