如何移除ListViewItem鼠标悬停时的蓝线并修改悬停背景色
WPF 原生ListViewItem的默认控件模板内置了IsMouseOver对应的触发器,优先级高于自定义的样式触发器,因此直接在样式中修改背景不会覆盖默认的悬停高亮效果,需要重写控件模板实现需求,参考实现如下:
<Style TargetType="{x:Type ListViewItem}"> <Setter Property="Background" Value="Transparent"/> <Setter Property="BorderBrush" Value="Transparent"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListViewItem}"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"> <ContentPresenter /> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <!-- 完全移除悬停蓝线则设置为Transparent,需要自定义悬停背景直接替换色值即可 --> <Setter Property="Background" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" /> </Trigger> <!-- 如有需要可以自行添加选中状态等其他触发器配置 --> <!-- <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="LightGray" /> </Trigger> --> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>
内容的提问来源于stack exchange,提问作者Nano
相关产品推荐
相关产品推荐

