Я пытаюсь воссоздать почту UI из Windows 8 в приложении WPF работает на Windows 7. Вот что я хочу добиться:Как установить цвет элемента списка ListView WPF?
В частности, я не знаю, как изменить цвет фона для выбранных элементов, например элемент «Входящие» в первом столбце и почта из Twitter во втором столбце. Я попробовал несколько решений от других подобных вопросов Stackoverflow, но ни один из них не работает для меня. например
Selected item loses style when focus moved out in WPF ListBox
WPF ListView Inactive Selection Color
Вот код, у меня есть для моей 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>
Как я могу изменить цвет фона выбранного элемента? И как сохранить изменение цвета при изменении фокуса.
Благодаря @TrueEddie. Моя машина действует, и я не могу проверить ваше решение. Я вернусь, как только смогу исправить свою машину. – Yasir
Это показывает выбор правильно. Но теперь, когда мы используем TextBlock вместо используемой гиперссылки, я больше не могу предоставить команду, которую мне нужно вызвать. Как я могу предоставить команду и связанный с ней параметр? Когда я заменяю элемент Border на гиперссылку, это позволяет мне изменять цвет при нажатии за пределами гиперссылки, но не позволяет мне вызвать команду. Когда я нажимаю гиперссылку, она позволяет мне выполнить команду, но цвет не изменяется. – Yasir
Я отредактировал свой ответ выше. – TrueEddie