如何更改UWP中所选ListView项的突出显示颜色(Windows 10)
我正在使用C#和XAML开发Windows 10应用程序。 我有一个ListView,我想更改所选项目的默认HighLight颜色。 我看到很多代码示例(像这样 ),但都是为WP8或Win8设计的,我试图实现这些,但它们对我不起作用。
一般来说,我很难修改控件的默认主题,因为我找不到有用的文档。 如果有人可以帮助我突出颜色并且还推荐我很好的文档,那将是很棒的。
实际上,发现样式属性的更好方法是使用Blend。
首先,在Blend中打开您的页面。 然后右键单击ListView
并继续
编辑其他模板>编辑生成的项目容器(ItemContainerStyle)>编辑副本 。
给它一个名字然后点击OK 。
现在,您已经为ListViewItem
生成了完整的内置样式,您可以在此找到有关其外观,动画和其他可视行为的所有信息。
你应该看看这段代码 –
看看行SelectedBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}"
? 这就是你可以应用自己的颜色的地方。 请记住,它应该是Brush
类型而不是Color
类型。
如果您不想使用XAML,可以使用c#更简单地(在我看来)更改这些设置:
Application.Current.Resources["SystemControlHighlightListAccentLowBrush"] = new SolidColorBrush(Colors.Red); Application.Current.Resources["SystemControlHighlightListAccentMediumBrush"] = new SolidColorBrush(Colors.Red);
这样您就可以在逻辑上自定义项目。
扩展bastecklein的答案。 您希望使用App而不是Application来使此方法在UWP项目中工作。 您可以在加载初始框架时在App.xaml.cs中使用此代码,也可以只在页面后面的代码上设置要影响的资源颜色。
App.Current.Resources["SystemControlHighlightListAccentLowBrush"] = new SolidColorBrush(Colors.Red); App.Current.Resources["SystemControlHighlightListAccentMediumBrush"] = new SolidColorBrush(Colors.Red);