C# 在Windows 8 CP中设置选定ListViewItem的样式

C# 在Windows 8 CP中设置选定ListViewItem的样式,c#,xaml,windows-8,microsoft-metro,C#,Xaml,Windows 8,Microsoft Metro,我想更改下面链接的图片中所选项目边框的外观 我已经在msdn.com和互联网上搜索过了,但是我没有发现任何有用的东西 如何执行此操作?选择外观是ListViewItem的ControlTemplate的一部分。要修改整个ListView的模板,请使用ItemContainerStyle将样式应用于每个项目,其中可以包含模板的修改版本 <ListView> <ListView.ItemContainerStyle> <Style TargetType="

我想更改下面链接的图片中所选项目边框的外观

我已经在msdn.com和互联网上搜索过了,但是我没有发现任何有用的东西


如何执行此操作?

选择外观是ListViewItem的ControlTemplate的一部分。要修改整个ListView的模板,请使用ItemContainerStyle将样式应用于每个项目,其中可以包含模板的修改版本

<ListView>
  <ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="ListViewItem">
            ...
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </ListView.ItemContainerStyle>
</ListView>

...
ListViewItem的默认模板非常复杂,因此为了尽可能多地保留默认行为并为您提供一个良好的起点,使用Blend为您创建副本是最简单的

在“混合”中,右键单击ListView并选择:

编辑其他模板->编辑生成的项目容器->编辑副本…


它将在上面的表单中为您创建一个样式,并填充默认模板。“选择”外观在模板中使用了一些您可能需要修改的不同元素-可以通过在“混合”中的“状态”面板中选择“选定状态”并钻取到“对象”面板中高亮显示的项目来查看这些元素。

我找到了另一种可能对其他人有用的解决方案:覆盖特定笔刷资源在
App.xaml
中。它可以在不克隆任何默认样式的情况下工作,并且非常简单:

<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="myColor1"/>
<SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="myColor2"/>

当然,还有更多的灌木丛可以覆盖,可以在此处找到它们的列表:


请注意,此方法会更改应用程序中所有ListView的外观。

您使用的是WPF还是Metro XAML应用程序?它们是完全独立的框架,但是你把它们都标记了出来。谢谢,这正是我想要的。我总是忘记我有Blend for Visual Studio来帮助处理这些东西。