如何更改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);