Este es mi XAML hasta ahora.Cambiar el color de fondo para el elemento de ListBox seleccionado
<ScrollViewer Grid.Column="1" Grid.RowSpan="2">
<ListBox Background="Black" ItemsSource="{Binding Path=ActiveLog}" >
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Black">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Foreground="White">
<TextBlock >Date:</TextBlock>
<TextBlock Text="{Binding Path=LogDate}"/>
</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="0" Foreground="White">
<TextBlock >Severity:</TextBlock>
<TextBlock Text="{Binding Path=Severity}"/>
</TextBlock>
<TextBlock Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Foreground="LightGray" Text="{Binding Path=Message}"></TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.Template>
<ControlTemplate>
<StackPanel Background="Black" IsItemsHost="True" >
</StackPanel>
</ControlTemplate>
</ListBox.Template>
</ListBox>
</ScrollViewer>
El único problema es que el elemento seleccionado tiene un cuadro azul a la derecha. Supongo que hay una forma de cambiar el color de selección, pero no puedo encontrarlo.
Ok, ahora tiene mucho más sentido. Gracias. –
No funciona si solo usa un 'Setter' para la propiedad 'Background' en 'IsSelected' es verdadero en ItemContainerStyle. Todavía usa el color de resaltado del sistema. :( – user1108069
Para cambiar el color de fondo del elemento ListBoxItem seleccionado, debe volver a aplicar el elemento ListBox. Ref: el comentario en la respuesta aceptada en [aquí] (http://stackoverflow.com/questions/7059526/set-background-color- for-selected-items-in-a-listbox). VS 2012, .Net Framework 4.5. – user1108069