У меня есть ListView, содержащий некоторые элементы ListViewItems. По умолчанию выбор элементов делает их фон немного синим. Я хотел бы применить стиль, чтобы выбор элемента не менял его внешний вид.Изменить цвет выбора WPF ListViewItem
В моем XAML я уже достиг этого:
<Style TargetType="ListViewItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
</Style.Resources>
</Style>
К сожалению, это не делает трюк. Это просто делает белый выбор вместо синего.
У кого-нибудь есть идеи?
С наилучшими пожеланиями, христианские
EDIT: Пример кода:
<Window.Resources>
<Style TargetType="ListViewItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
Color="Black"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent"/>
</Style.Resources>
</Style>
</Window.Resources>
<ListView x:Name="lvTestRun" ItemsSource="{Binding Path=TestRunData}" Margin="177,26,8,53.277" SelectionMode="Multiple">
<ListView.View>
<GridView>
<GridViewColumn Header="Status"/>
<GridViewColumn Header="Duration"/>
<GridViewColumn Header="Start Time"/>
<GridViewColumn Header="End Time"/>
</GridView>
</ListView.View>
</ListView>
Для того, чтобы воспроизвести это, возможно, придется установить фоновый цвет одного ListViewItem к чему-то, как зеленый или красный.
Спасибо за быстрый ответ. Я попробовал ваш код, и это дает мне почти то, что я хочу. Однако: перед тем, как щелкнуть элементы, у них уже есть цвет фона. Некоторые из них зеленые, некоторые - красные, некоторые желтые, а некоторые оранжевые. Теперь, когда я выбираю несколько из них, они все становятся белыми. Белый из-за «Прозрачного» в вашем коде. Если я изменил Transparent на Black, они все чернеют. Я бы хотел достичь того, что они остаются того же цвета, что и раньше. Это возможно? Как в рассказе ресурса стиля, который при отборе не должен менять «HighlightBurshKey»? – Christian 2010-11-22 15:26:30