我想在下面链接的图片中更改所选项目边框的外观。
我已经在msdn.com和互联网上四处寻找,但我发现没什么用处。
我该怎么做?
答案 0 :(得分:16)
选择外观是ListViewItem的ControlTemplate的一部分。要修改整个ListView的模板,请使用ItemContainerStyle将Style应用于每个项目,该项目可以包含模板的修改版本。
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
...
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
ListViewItem的默认模板非常复杂,因此为了保留尽可能多的默认行为并为您提供一个良好的起点,最简单的方法是使用Blend为您创建副本。
在Blend中,右键单击ListView并选择:
修改其他模板 - &gt;编辑生成的项目容器 - &gt;编辑副本...
它将在上面的表单中为您创建一个样式,并填入默认模板。选择外观使用模板中您可能想要修改的几个不同元素 - 可以通过选择“已选择”状态来查看这些元素。 Blend中的States面板,并在Objects面板中钻取突出显示的项目。
答案 1 :(得分:2)
我发现了另一种可能对其他人有帮助的解决方案:覆盖App.xaml
中的特定画笔资源。它可以在不克隆任何默认样式的情况下工作,并且简单如下:
<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="myColor1"/>
<SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="myColor2"/>
当然,可以覆盖更多的灌木丛,可在此处找到它们的列表:ListViewItem styles and templates。
请注意,此方法会更改应用程序中所有ListView的外观。