Cor de seleção inativa do WPF ListView

Eu estou criando um aplicativo WPF onde várias seleções ListView são feitas em uma linha (semelhante ao navegador do iTunes). O problema é que a cor de seleção inativa padrão é muito clara. (ver abaixo) Cor de seleção inativa padrão (muito clara)

Como posso mudar essa cor para que meu listview inativo se pareça com isso? (ver abaixo) Seleção inativa e ativa colore o mesmo

Solução

Substitua o SystemColor padrão por um Style assim:

      

O modelo ListBox usa uma cor do sistema chamada ControlBrush para definir a cor de realce inativa. Portanto, você pode simplesmente replace essa cor:

   Red   

Alterar SystemColors.ControlBrushKey não funcionou para mim, eu tive que mudar SystemColors.InactiveSelectionHighlightBrushKey

Então, ao invés de:

  

Eu tive que usar:

  

A resposta, em alguns casos, resolverá o problema, mas não é ideal, pois quebra quando o controle está desabilitado / somente leitura e também substitui os esquemas de colors, em vez de tirar vantagem deles. Minha sugestão é adicionar o seguinte nas tags ListBox:

      

O que isso fará é definir a cor de fundo Realçar no item da checkbox de listview sempre que for selecionado (independentemente do estado do controle).

Minha resposta é baseada na ajuda da resposta já fornecida, juntamente com o seguinte blog: http://blogs.vbcity.com/xtab/archive/2009/06/29/9344.aspx

Você precisa replace algumas propriedades de SystemColors. Dê uma olhada na class SystemColors (MSDN) . Existem mais propriedades do que InactiveSelectionHighlightBrushKey, por exemplo, InactiveSelectionHighlightTextBrushKey, que afeta a cor do texto.

                    

insira a descrição da imagem aqui

Para mim, isso funcionou:

         

Em .NET Frameworks antigos, a substituição das colors do sistema não funciona. A solução que funciona no .NET Framework 4.0 está aqui .

    

Funciona tanto para ListBox e ListView.