Я пытаюсь установить цвет фона выбранного элемента ListBoxItty как белый, а не системный. Я прочитал, что я могу найти здесь, и следил за ними или, как полагали, следил за рекомендациями (Изменить цвет фона для выбранного элемента списка ListBox, WPF Как изменить цвет текста выбранного элемента списка, когда поле списка теряет фокус, Изменить выбранный и не сфокусированный стиль списка, чтобы не было выделено серым цветом и другие).
Все, кажется, решают проблему, установив HighlightBrush и ControlBrush в Прозрачный для выбранного элемента. У меня есть следующий XAML, и он правильно устанавливает цвет шрифта, но backgroound является прозрачным синим цветом по умолчанию, независимо от настроек кисти. Я все еще немного WPF noob, поэтому мне, должно быть, не хватает чего-то простого здесь.
<ListBox Width="Auto" Height="Auto" Grid.Column="0" BorderThickness="0" Background="#FFF3F3F3" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<ListBox.ItemsSource>
<x:Array Type="{x:Type sys:String}">
<sys:String>String 1</sys:String>
<sys:String>String 2</sys:String>
<sys:String>String 3</sys:String>
<sys:String>String 4</sys:String>
</x:Array>
</ListBox.ItemsSource>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
</Style.Resources>
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="FontSize" Value="16"/>
<Setter Property="Foreground" Value="#999999"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True" >
<Setter Property="Background" Value="White" />
<Setter Property="Foreground" Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" HorizontalAlignment="Right" Margin="0,0,8,0" Background="Transparent"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Буду признателен за любые подталкивания в правильном направлении.
ИЗМЕНИТЬ
Прочитав первый ответ, который сработал для них с небольшими изменениями, я взял приложение, которое я разрабатывал на своей машине под Windows 8, и выполнил его в виртуальной машине Windows 7, и он работал, как ожидалось. Любые идеи о том, что нужно изменить, чтобы заставить это работать на машине с Windows 8, а также на Windows 7?