Xaml 如何禁用ListView';s悬停和平铺效果?
我想禁用平铺效果,这是ListView控件的一种推送效果和悬停背景色效果,我该怎么做 谢谢你看这个问题:Xaml 如何禁用ListView';s悬停和平铺效果?,xaml,listview,windows-8,windows-runtime,winrt-xaml,Xaml,Listview,Windows 8,Windows Runtime,Winrt Xaml,我想禁用平铺效果,这是ListView控件的一种推送效果和悬停背景色效果,我该怎么做 谢谢你看这个问题: 您还可以更改模板以删除任何视觉状态和装饰-转到设计器并右键单击您的列表视图/编辑其他模板/编辑生成的项目容器(ItemContainerStyle)/编辑副本…-这将提取您可以使用首选方法修改的模板。在谷歌搜索之后,我发现突出显示发生在ListViewItemPresenter中,结果是非常隐藏的。它位于ListViewItem的ControlTemplate内,ListViewItem是
您还可以更改模板以删除任何视觉状态和装饰-转到设计器并右键单击您的列表视图/编辑其他模板/编辑生成的项目容器(ItemContainerStyle)/编辑副本…-这将提取您可以使用首选方法修改的模板。在谷歌搜索之后,我发现突出显示发生在ListViewItemPresenter中,结果是非常隐藏的。它位于ListViewItem的ControlTemplate内,ListViewItem是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" />
...
来源:遗憾的是,扩展样式不再由Blend生成(它只生成默认样式),但可以从msdn获得。是的,我认为当前的
ListViewItem
模板非常简单-我怀疑它实际上是在平台/渲染器级别渲染的,以提高性能,因此如果您想自定义它-您实际上是在使模板复杂化。是的,很遗憾,我还没有找到更好的方法来禁用所有的项目点击动画,同时仍然保留ScrollIntoView。但请记住,这将破坏控件的可访问性。。