我在 UWP 應用程序中使用導航視圖控件,問題是當我單擊后退按鈕時,焦點元素不會更改為內容框架中顯示的項目。例如,點擊的元素是 camara、store、musica,然后兩次返回按鈕以在 contentframe 元素中顯示 camara,但 musica 仍然具有焦點(藍色矩形)private void FrameNavigated( object sender, NavigationEventArgs e ) { var currentView = SystemNavigationManager.GetForCurrentView(); if ( ContentFrame.CanGoBack ) { currentView.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible; } else { currentView.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed; } }private void OnBackRequested( object sender, BackRequestedEventArgs e ) { if ( ContentFrame.CanGoBack ) { e.Handled = true; PageStackEntry pageStackEntry = ContentFrame.BackStack.LastOrDefault(); ContentFrame.GoBack(); if ( pageStackEntry != null ) { string nombre = pageStackEntry.SourcePageType.Name; MenuItem item = subItemsMenu.FirstOrDefault(nom => nom.NombrePantalla.Equals(nombre)); navView.SelectedItem = item; navView.Header = item.Encabezado; } } }
2 回答

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
已解決,使用 NavigationViewExtensions.SetSelectedIndex(NavigationView, index); 來自 Microsoft.Toolkit.Uwp.UI.Extensions 4.0.0,因為 5.0.0 版本已棄用

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
我在您的代碼中沒有看到任何問題。幾種方法可能有助于排除故障:
調試并確保 MenuItem 項不為空。
單擊后退按鈕時,嘗試通過您的代碼直接選擇家庭或相機
私人無效OnBackRequested(對象發送者,BackRequestedEventArgs e){字符串名詞=“相機”;MenuItem item = subItemsMenu.FirstOrDefault(nom => nom.NombrePantalla.Equals(nombre)); navView.SelectedItem = 項目;}
將 SelectionChanged="nav_SelectionChanged" 添加到 XAML,然后檢查SelectionChanged
發布一個可以重現您的問題的簡單應用程序
- 2 回答
- 0 關注
- 201 瀏覽
添加回答
舉報
0/150
提交
取消