Ich versuche, die E-Mail-Benutzeroberfläche von Windows 8 in einer WPF-Anwendung auf Windows 7. Hier läuft neu, was ich erreichen möchte:So legen Sie eine WPF ListView-Objektfarbe fest?
Insbesondere, ich weiß nicht, wie das ändern Hintergrundfarbe für ausgewählte Artikel, z der Posteingang in der ersten Spalte und die Post von Twitter in der zweiten Spalte. Ich habe mehrere Lösungen aus anderen ähnlichen Stackoverflow-Fragen ausprobiert, aber keine scheint für mich zu funktionieren. z.B.
Selected item loses style when focus moved out in WPF ListBox
WPF ListView Inactive Selection Color
Hier ist der Code, den ich für meine Listview haben:
<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>
Wie kann ich die Hintergrundfarbe des ausgewählten Elements ändern? Und wie behalte ich die Farbänderung, wenn sich der Fokus ändert.
Dank @TrueEddie. Meine Maschine agiert und ich kann Ihre Lösung nicht testen. Ich werde zurückkommen, sobald ich meine Maschine reparieren kann. – Yasir
Dies zeigt die Auswahl richtig an. Aber jetzt, da wir TextBlock anstelle des Hyperlinks verwenden, den ich verwendet habe, kann ich den Befehl, den ich aufrufen musste, nicht mehr liefern. Wie kann ich den Befehl und die zugehörigen Parameter angeben? Wenn ich Ihr Border-Element durch einen Hyperlink ersetze, kann ich die Farbe ändern, wenn außerhalb des Hyperlinks geklickt wird, aber ich kann den Befehl nicht aufrufen. Wenn ich auf den Hyperlink klicke, kann ich den Befehl einfügen, aber die Farbe wird nicht geändert. – Yasir
Ich habe meine Antwort oben bearbeitet. – TrueEddie