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

WPF移除ListView单元格点击后的高亮与边框效果

解决WPF ListView图片点击时的高亮与边框问题

要移除ListView内图片点击时的背景高亮和边框,核心是修改ListViewItem的默认样式——每个列表项本质是ListViewItem,它的默认模板包含了选中、焦点状态下的高亮效果,我们需要重写这部分逻辑:

修改步骤

替换你代码里的<ItemsControl.ItemContainerStyle>部分为以下完整样式:

<ItemsControl.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="Grid.Column" Value="{Binding ColumnIndex}" />
        <Setter Property="Grid.Row" Value="{Binding RowIndex}" />
        <!-- 让ListViewItem不响应点击,避免触发选中状态 -->
        <Setter Property="IsHitTestVisible" Value="False" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListViewItem">
                    <!-- 直接显示内容,彻底移除默认的选中/高亮视觉元素 -->
                    <ContentPresenter />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ItemsControl.ItemContainerStyle>

补充说明

  • 设置IsHitTestVisible="False"是为了让ListViewItem不再抢占Image的MouseDown事件,同时避免触发自身的选中状态。
  • 重写Template为纯ContentPresenter,彻底去掉了ListViewItem默认的选中高亮、边框等所有视觉反馈。

你之前在Window.Resources里设置的SystemColors.HighlightBrushKey作用有限,因为ListViewItem的默认模板可能使用了硬编码的视觉资源,所以重写ItemContainerStyle是最彻底的解决方式。


内容的提问来源于stack exchange,提问作者Rando Hinn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:41:13