我有一个WPF ListView和一个GridView作为ListView.View,以便在我的ListView中有列。在我的代码中,我正在更改SelectedIndex
属性(绑定到ViewModel中的int),以更改选择索引。但是这样做会在先前选择的项目周围产生一个轮廓框(请参见图片)。由于视觉风格,我想删除此轮廓或将其移至新的选定项。
我已经尝试过更改ListViewItem的ControlTemplate(下面的代码)
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border Background="{TemplateBinding Background}">
<GridViewRowPresenter Margin="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
<Border.InputBindings>
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding ...}"/>
</Border.InputBindings>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#D9EBF9"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="False">
<Setter Property="Background" Value="Transparent"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#CCE8FF"/>
</Trigger>
</ControlTemplate.Triggers>
我也在网上搜索其他解决方案,但找不到适合我的解决方案。
答案 0 :(得分:0)
感谢@dymanoid
通过问题解决的ListViewItem样式将FocusVisualStyle
设置为{x:Null}
。
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>