WinUI3应用如何调整NavigationViewItem选中下划线长度匹配内容文本
目前不存在可直接调整NavigationViewItem选中下划线长度、或控制其自动适配内容宽度的公开属性,要实现下划线与内容文本等长的效果,需修改控件的默认样式模板,具体操作步骤如下:
- 右键点击你的XAML页面中任意一个NavigationViewItem控件,依次选择「编辑模板」→「编辑副本」,系统会自动生成该控件的完整默认样式代码,你可以选择将样式保存到当前页面资源或全局资源字典中。
- 在生成的样式模板中找到名为
SelectionIndicator的Rectangle元素,该元素就是选中状态下的蓝色下划线控件。 - 默认样式中该Rectangle的Width为固定硬编码值(通常为24px),直接删除Width属性,调整它的布局位置:将它和模板中承载内容的
NavigationViewItemContentPresenter放在同一个布局容器的同一层级,设置HorizontalAlignment为Stretch,再根据你的文本边距调整对应Margin即可,修改后的关键代码示例如下:
<Rectangle x:Name="SelectionIndicator" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Height="2" Fill="{ThemeResource NavigationViewSelectionIndicatorForeground}" Margin="0,0,0,2"/>
- 将修改后的样式应用到所有NavigationViewItem即可,后续选中时下划线会自动适配内容文本的宽度。
如果你使用的是WinUI 3版本的NavigationView,上述修改逻辑完全通用,模板结构基本一致,修改后即可生效。
内容的提问来源于stack exchange,提问作者R. Cohn
相关产品推荐
相关产品推荐

