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

如何禁用ItemsView中各列表项的鼠标悬停效果?

禁用WinUI 3 ItemsView列表项鼠标悬停变暗效果的方法

ItemsView的列表项悬停变暗效果是由默认ListViewItem模板里的PointerOver视觉状态控制的,你可以通过以下两种方式禁用该效果:

方法一:自定义ItemContainerStyle(仅影响当前ItemsView)

通过重写项容器的ControlTemplate,修改悬停状态的背景设置:

<ItemsView>
    <ItemsView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="ListViewItem">
                        <Border x:Name="Root" 
                                Background="{TemplateBinding Background}"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                BorderThickness="{TemplateBinding BorderThickness}">
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Normal"/>
                                    <!-- 重写悬停状态,移除背景变暗效果 -->
                                    <VisualState x:Name="PointerOver">
                                        <VisualState.Setters>
                                            <!-- 设置为透明,或绑定默认背景保持一致 -->
                                            <Setter Target="Root.Background" Value="{TemplateBinding Background}"/>
                                        </VisualState.Setters>
                                    </VisualState>
                                    <VisualState x:Name="Pressed">
                                        <VisualState.Setters>
                                            <Setter Target="Root.Background" Value="{ThemeResource ListViewItemPressedBackground}"/>
                                        </VisualState.Setters>
                                    </VisualState>
                                </VisualStateGroup>
                                <!-- 保留其他必要状态(如选中、禁用等) -->
                            </VisualStateManager.VisualStateGroups>
                            <ContentPresenter Content="{TemplateBinding Content}"
                                              ContentTemplate="{TemplateBinding ContentTemplate}"
                                              Padding="{TemplateBinding Padding}"/>
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ItemsView.ItemContainerStyle>
    <!-- 此处添加你的ItemTemplate和数据源配置 -->
</ItemsView>

方法二:覆盖主题资源(全局影响同类型控件)

如果希望所有ListViewItem(包括ItemsView的项)都禁用悬停变暗,可以在页面或应用资源中覆盖对应的主题资源:

<Page.Resources>
    <!-- 将悬停背景设为透明 -->
    <SolidColorBrush x:Key="ListViewItemPointerOverBackground" Color="Transparent"/>
</Page.Resources>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 21:22:37