我在 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条经验 获得超12个赞
已解决,使用 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 关注
- 167 浏览
添加回答
举报
0/150
提交
取消