XAML 如何在WinUI3中禁用ListViewItem选择的默认视觉提示(Windows 10)

5gfr0r5j  于 2023-09-28  发布在  Windows
关注(0)|答案(1)|浏览(107)

特别是,我想摆脱默认的垂直蓝色动画,它在释放鼠标按钮后显示在选定的ListViewItem的左侧。这至少是我在Windows 10 PC上获得的默认行为。
我有这个解决方案,这是不完美的,因为出于某种原因,我松散的其他一些默认样式一样,圆角周围突出显示的项目。此外,由于我显然不完全理解幕后发生的事情,我担心一旦我向UI添加复杂性,这个解决方案可能会崩溃。
我目前的解决方案:

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListViewItem">
                    <ListViewItemPresenter
                        PressedBackground="{ThemeResource ListViewItemBackgroundPointerOver}"
                        SelectedPressedBackground="{ThemeResource ListViewItemBackgroundPointerOver}"
                        SelectedPointerOverBackground="{ThemeResource ListViewItemBackgroundPointerOver}"
                        PointerOverBackground="{ThemeResource ListViewItemBackgroundPointerOver}"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ListView.ItemContainerStyle>
bgibtngc

bgibtngc1#

当您覆盖ControlTemplate时,会丢失一些默认外观。如果你只想删除蓝线,你可以通过将ListViewItemSelectionIndicatorVisualEnabled设置为false来禁用它:

<Page.Resources>
    <x:Boolean x:Key="ListViewItemSelectionIndicatorVisualEnabled">False</x:Boolean>
</Page.Resources>

<ListView ItemsSource="{x:Bind Items}" />

<ListView ItemsSource="{x:Bind Items}" >
    <ListView.Resources>
        <x:Boolean x:Key="ListViewItemSelectionIndicatorVisualEnabled">False</x:Boolean>
    </ListView.Resources>
</ListView>

相关问题