WPF: el disparador para ListBoxItem.IsSelected no funciona para la propiedad de fondo

Intento cambiar elBackground propiedad para miListBoxItems usando disparadores en laItemContainerStyle de miListBox como sigue

    <ListBox Height="100" HorizontalAlignment="Left" Margin="107,59,0,0" Name="listBox1" VerticalAlignment="Top" Width="239">
        <ListBox.ItemContainerStyle>
            <Style TargetType="{x:Type ListBoxItem}">
                <Setter Property="Background" Value="Lightblue"/>
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="true">
                        <Setter Property="Background" Value="Red"/>
                    </Trigger>
                    <Trigger Property="IsMouseOver" Value="true">
                        <Setter Property="Background" Value="Yellow"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.Items>
            <ListBoxItem Content="First Item"/>
            <ListBoxItem Content="SecondItem"/>
            <ListBoxItem Content="Third Item"/>
        </ListBox.Items>
    </ListBox>

Esperaría que los elementos no seleccionados tengan un fondo azul claro, los elementos suspendidos (es decir, cuando el cursor del mouse esté sobre ellos) sean amarillos y los elementos seleccionados sean rojos.

Para los elementos no seleccionados y suspendidos, esto funciona como se esperaba, pero los elementos seleccionados aún tienen su color de fondo estándar (es decir, azul, si el cuadro de lista tiene el foco y gris claro de lo contrario).

¿Hay algo que me falta? ¿Está documentado este comportamiento en alguna parte?

¡Gracias por cualquier pista!

EDITA

Soy consciente de la solución de anular los colores predeterminados del sistema (como se describe enCambie el estilo de cuadro de lista seleccionado y desenfocado para que no esté atenuado, gracias de todos modos por que todos publiquen esto como respuesta). Sin embargo, esto no es lo que quiero hacer. Estoy más interesado en por qué mi solución no funciona.

Sospecho que el estándarControlTemplate deListItem para definir sus propios desencadenantes que parecen tener precedencia sobre los desencadenantes definidos por el estilo (tal vez alguien podría confirmar esto y señalarme algún recurso donde se define este comportamiento).

ientras tanto, mi solución es definir unControlTemplate para miListItems como:

        <ListBox.ItemContainerStyle>
            <Style TargetType="{x:Type ListBoxItem}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <Border Name="Border" Padding="2" SnapsToDevicePixels="true" Background="LightBlue" Margin="0">
                                <ContentPresenter/>
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsSelected" Value="true">
                                    <Setter TargetName=",Border" Property="Background" Value="Red"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ListBox.ItemContainerStyle>

Respuestas a la pregunta(4)

Su respuesta a la pregunta