如何禁用ListView的悬停和平铺效果?

meh*_*mak 5 xaml listview windows-8 windows-runtime winrt-xaml

我想禁用Tile效果,这是一种推送效果和ListView控件的悬停背景颜色效果,我该怎么做?

谢谢

Han*_*lan 5

经过一番谷歌搜索后,我发现高亮发生在ListViewItemPresenter中,事实证明它是非常隐藏的。它位于ListViewItem的ControlTemplate中,该控件是ListView的ItemContainer。我发现禁用效果的最简单方法是简单地重写此ControlTemplate:

<ListView>
<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                    <ContentPresenter/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ListView.ItemContainerStyle>
<TextBlock Text="List Item" />
...
<TextBlock Text="List Item" />
Run Code Online (Sandbox Code Playgroud)

来源:https : //blog.jonstodle.com/uwp-listview-without-highlighting-and-stuff/

  • 但请记住,这会破坏控件的可访问性.. (2认同)

Fil*_*kun 4

看这个问题: Disable cross-slide Selection for a listview

您还可以对模板进行更改以删除任何视觉状态和装饰 - 转到设计器并右键单击您的 ListView/编辑其他模板/编辑生成的项目容器 (ItemContainerStyle)/编辑副本... - 这将提取模板您可以使用您喜欢的方法进行修改。