Я играюсь с wpf и увидел следующую статью:
WPF ListView Неактивный цвет выделения
Я хочу сделать что-то подобное. Я хочу поместить рамку вокруг элемента списка, когда он выбран, и я не хочу менять цвет фона. Причина, по которой я этого хочу, в том, что я хочу цветной список, и я все еще хочу видеть цвет, когда он выбран, но я хочу знать, что он выбран с помощью рамки вокруг него.
Есть идеи?
UPDATE:
Я попробовал приведенный ниже ответ, и он наполовину прошел, он ограничивает область просмотра списка, но он перекрывает мой цвет фона. Я не могу получить правильный синтаксис, который я пробовал (обратите внимание на BasedOn):
<Style x:Key="SourceListView" TargetType="{x:Type ListViewItem}">
<Setter Property="Background" Value="{Binding SourceType, Converter={StaticResource SourceGroupConverter}}"/>
</Style>
<Style x:Key="MyListViewItemStyle" TargetType="{x:Type ListViewItem}" BasedOn="{StaticResource SourceListView}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border
x:Name="Border"
BorderBrush="Transparent"
BorderThickness="1">
<GridViewRowPresenter Columns="{TemplateBinding GridView.ColumnCollection}" Content="{TemplateBinding Content}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="Border" Property="BorderBrush" Value="Black"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Затем я попробовал это:
<Style x:Key="MyListViewItemStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="Background" Value="{Binding SourceType, Converter={StaticResource SourceGroupConverter}}"/>
<Setter Property="Template">
...//Same as above
</Setter>
</Style>
Обе попытки просто устанавливают белый фон (или прозрачный, я не знаю). Я знаю, что это всего лишь синтаксис, и я был бы признателен за еще одно движение в правильном направлении:)