From 9e60fba36c1cd0e2b27165a877c2f816665eb402 Mon Sep 17 00:00:00 2001 From: Frank Richter Date: Sat, 28 Dec 2024 16:14:32 +0100 Subject: [PATCH] Tweak MainWindow navigation behavior --- HDRTrayConfig/MainWindow.xaml.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/HDRTrayConfig/MainWindow.xaml.cpp b/HDRTrayConfig/MainWindow.xaml.cpp index 09e009f..838cf43 100644 --- a/HDRTrayConfig/MainWindow.xaml.cpp +++ b/HDRTrayConfig/MainWindow.xaml.cpp @@ -67,12 +67,18 @@ namespace winrt::HDRTrayConfig::implementation auto selectedItemTag = selectedItem.Tag().as(); auto pageName = std::format(L"HDRTrayConfig.{}", selectedItemTag); auto pageType = TypeName{ winrt::hstring(pageName), TypeKind::Metadata}; - contentFrame().Navigate(pageType); + contentFrame().Navigate(pageType, nullptr, args.RecommendedNavigationTransitionInfo()); } void MainWindow::NavigationView_Loaded(winrt::Windows::Foundation::IInspectable const&, winrt::Microsoft::UI::Xaml::RoutedEventArgs const&) { - contentFrame().Navigate(winrt::xaml_typename()); + auto nav_items = NavigationView().MenuItems(); + auto view_item_it = + std::find_if(nav_items.begin(), nav_items.end(), [](const winrt::Windows::Foundation::IInspectable& item) { + return item.as(); + }); + if (view_item_it != nav_items.end()) + NavigationView().SelectedItem(*view_item_it); } LRESULT MainWindow::SubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData)