Sto cercando di ricreare l'interfaccia utente posta da Windows 8 in un'applicazione WPF in esecuzione su Windows 7. Ecco quello che voglio raggiungere:Come impostare un colore dell'elemento selezionato ListView WPF?
In particolare, non so come cambiare il colore di sfondo per gli articoli selezionati es la posta in arrivo nella prima colonna e la posta da Twitter nella seconda colonna. Ho provato diverse soluzioni da altre simili Stackoverflow Questions ma nessuna sembra funzionare per me. per esempio.
Selected item loses style when focus moved out in WPF ListBox
WPF ListView Inactive Selection Color
Ecco il codice che ho per il mio ListView:
<ListView Grid.Row="0" SelectedItem="{Binding Path=SelectedArea}" ItemsSource="{Binding Path=Areas}" Background="#DCE3E5" >
<ListView.Resources>
<!-- Template that is used upon selection of an Area -->
<ControlTemplate x:Key="SelectedTemplate" TargetType="ListViewItem">
<Border Background="#388095" Cursor="Hand" >
<TextBlock Text="{Binding Name}" Margin="5" />
</Border>
</ControlTemplate>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<!-- Base Template that is replaced upon selection -->
<ControlTemplate TargetType="ListViewItem">
<Border Background="#DCE3E5" Cursor="Hand" >
<TextBlock Text="{Binding Name}" Margin="5" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true" />
</MultiTrigger.Conditions>
<Setter Property="Template" Value="{StaticResource SelectedTemplate}" />
</MultiTrigger>
</Style.Triggers>
</Style>
</ListView.Resources>
</ListView>
Come posso cambiare il colore della voce selezionata di sottofondo? E come posso mantenere il cambio di colore quando cambia lo stato attivo.
Grazie @TrueEddie. La mia macchina sta agendo e non sono in grado di testare la tua soluzione. Tornerò non appena sarò in grado di aggiustare la mia macchina. – Yasir
Questo mostra la selezione correttamente. Ma ora che stiamo usando TextBlock invece del collegamento ipertestuale che stavo usando, non sono più in grado di fornire il comando che dovevo invocare. Come posso fornire il comando e il parametro associato? Quando sostituisco il tuo elemento Border con il collegamento ipertestuale, mi consente di cambiare colore quando si fa clic all'esterno del collegamento ipertestuale, ma non mi consente di richiamare il comando. Quando faccio clic sul collegamento ipertestuale, mi consente di inovke il comando ma il colore non viene modificato. – Yasir
Ho modificato la mia risposta sopra. – TrueEddie