You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:27:01