如何修改UWP中NavigationView的SelectionIndicator颜色
当然可以!完全不用去碰全局的generic.xaml,在你使用NavigationView的页面XAML文件里就能轻松替换掉那个小矩形的颜色,这里给你两种实用的方案:
方案一:直接重写页面级资源
这是最快捷的方式,因为系统默认的选择指示器颜色绑定的是NavigationViewSelectionIndicatorForeground这个主题资源,我们只需要在当前页面的资源字典里重新定义这个资源,就能覆盖系统的强调色:
<Page.Resources> <!-- 把这里的Color值改成你想要的自定义颜色 --> <SolidColorBrush x:Key="NavigationViewSelectionIndicatorForeground" Color="#FF2ECC71"/> </Page.Resources>
页面级的资源优先级会高于系统全局资源,所以NavigationView会自动使用你定义的这个颜色作为选择指示器的填充色。
方案二:自定义NavigationView模板(更灵活)
如果你不仅想改颜色,还想调整指示器的大小、形状等属性,可以提取NavigationView的默认模板并修改:
- 在Visual Studio里右键你的NavigationView控件,选择「编辑模板」→「编辑副本」,选择要将模板保存到的位置(比如当前页面);
- 在生成的样式代码里,找到名为
SelectionIndicator的Rectangle元素,它原本的Fill属性绑定了系统资源,直接把它改成你自定义的颜色即可:
<Rectangle x:Name="SelectionIndicator" Width="4" Height="24" Margin="0,12,0,12" Fill="#FF2ECC71" <!-- 替换成你的自定义颜色 --> HorizontalAlignment="Left" Opacity="0"/>
这种方式能给你更多的自定义空间,适合有特殊UI需求的场景。
内容的提问来源于stack exchange,提问作者JT Smith
相关产品推荐
相关产品推荐

