Как удалить WPF ListView Highlight color? - PullRequest
0 голосов
/ 28 июня 2011

У меня есть представление списка, для которого я определил собственный стиль для ItemContainerStyle, который меняет цвет фона элемента на определенное значение.

Дело в том, что как только я щелкаю по списку, выбирается элемент, и он принимает стиль, который я не могу изменить.

То, что я хотел бы сделать, это просто увеличить BorderThickness из ListViewItem.

Вот образец моего ItemContainerStyle:

<Style x:Key="colorStyle" TargetType="ListViewItem">
    <Setter Property="Foreground" Value="Black"></Setter>
    <Setter Property="Height" Value="25"></Setter>
    <Style.Triggers>
        <DataTrigger Binding="{Binding Level}" Value="1">
            <Setter Property="Background" Value="Indigo"></Setter>
            <Setter Property="Foreground" Value="White"></Setter>
        </DataTrigger>
        <DataTrigger Binding="{Binding Level}" Value="2">
            <Setter Property="Background" Value="Blue"></Setter>
            <Setter Property="Foreground" Value="White"></Setter>
        </DataTrigger>
        <DataTrigger Binding="{Binding Level}" Value="3">
            <Setter Property="Background" Value="Cyan"></Setter>
        </DataTrigger>
        <DataTrigger Binding="{Binding Level}" Value="4">
            <Setter Property="Background" Value="Green"></Setter>
            <Setter Property="Foreground" Value="White"></Setter>
        </DataTrigger>
        <DataTrigger Binding="{Binding Level}" Value="5">
            <Setter Property="Background" Value="Yellow"></Setter>
        </DataTrigger>
        <DataTrigger Binding="{Binding Level}" Value="6">
            <Setter Property="Background" Value="Orange"></Setter>
            <Setter Property="Foreground" Value="White"></Setter>
        </DataTrigger>
        <DataTrigger Binding="{Binding Level}" Value="7">
            <Setter Property="Background" Value="Red"></Setter>
            <Setter Property="Foreground" Value="White"></Setter>
        </DataTrigger>
    </Style.Triggers>
</Style>

1 Ответ

3 голосов
/ 28 июня 2011

Один из способов - переопределить системный цвет, чтобы получить то, что вы хотите.

<ListView>
 <ListView.Resources>
   <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
   <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="DarkGreen"/>
 </ListView.Resources>
</ListView>
...