ListView中的动态高亮颜色

时间:2011-09-22 05:26:52

标签: wpf listview dynamic highlight

如何根据ListViewItem的某些属性创建背景突出显示颜色?

2 个答案:

答案 0 :(得分:2)

这是人们经常要求的问题。实际上,由于某些原因,在ListView或ListBox中选择项目时,背景颜色不是更改的颜色。这有点棘手。实际上,您需要覆盖项模板绑定的静态颜色资源的值。因此,要更改您必须执行的项目的高亮颜色,如下所示:

<ListView>
    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListViewItem}">
            <Style.Resources>
                <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Orange"/>
            </Style.Resources>
        </Style>
    </ListView.ItemContainerStyle>
</List>

以下是更为发达的解释:Trigger for ListBoxItem

答案 1 :(得分:0)

修改

要更改所选背景,您必须覆盖ListViewItem的模板。

看到这个...... http://msdn.microsoft.com/en-us/library/ms788717(v=vs.90).aspx

{StaticResource SelectedBackgroundBrush}替换为模板中首选的背景画笔。


要根据控件模板不依赖的任何其他属性更改背景,您可以使用触发器......

 <ListView ...>
  <ListView.Resources>
   <Style TargetType="{x:Type ListViewItem}">
     <Style.Triggers>
       <Trigger Property="SomeListViewItemProperty" Value="Value1">
         <Setter Property="Background" Value="Red" />
       </Trigger>
       <Trigger Property="SomeListViewItemProperty" Value="Value2">
         <Setter Property="Background" Value="Yellow" />
       </Trigger>
     </Style.Triggers>
   </Style>
  <ListView.Resources>
 </ListView>

我希望这能回答你的问题。