是否可以关闭WPF的选择ListView
,那么当用户单击行时,该行不会突出显示?
(source: konim5am at artax.karlin.mff.cuni.cz https://artax.karlin.mff.cuni.cz/%7Ekonim5am/Vis/wpfGrid.png)
我希望单击时第 1 行看起来像第 0 行。
可能相关:我可以设置悬停/选择的外观样式吗?例如。将蓝色渐变悬停外观(第 3 行)替换为自定义纯色。我已经发现this https://stackoverflow.com/questions/382006/wpf-listview-inactive-selection-color and this https://learn.microsoft.com/en-us/archive/blogs/wpfsdk/specifying-the-selection-color-content-alignment-and-background-color-for-items-in-a-listbox,不幸的是没有帮助。
(不使用 ListView 实现相同的效果也是可以接受的。我只是希望能够像 ListView 一样使用逻辑滚动和 UI 虚拟化)
ListView 的 XAML 是:
<ListView Height="280" Name="listView">
<ListView.Resources>
<!-- attempt to override selection color -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightColorKey}"
Color="Green" />
</ListView.Resources>
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" />
<!-- more columns -->
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
根据 Martin Konicek 的评论,以最简单的方式完全禁用项目选择:
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Focusable" Value="false"/>
</Style>
</ListView.ItemContainerStyle>
...
</ListView>
但是,如果您仍然需要 ListView 的功能,例如能够选择一个项目,那么您可以直观地禁用所选项目的样式,如下所示:
您可以通过多种方式执行此操作,从更改 ListViewItem控制模板 http://msdn.microsoft.com/en-us/library/ms788717.aspx只是设置一个样式(更容易)。您可以使用以下命令为 ListView 项目创建样式项目容器样式 http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemcontainerstyle.aspx并在选择时“关闭”背景和边框画笔。
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="IsSelected"
Value="True">
<Setter Property="Background"
Value="{x:Null}" />
<Setter Property="BorderBrush"
Value="{x:Null}" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
...
</ListView>
另外,除非您有其他方式在选择项目时通知用户(或只是为了测试),否则您可以添加一列来表示该值:
<GridViewColumn Header="IsSelected"
DisplayMemberBinding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)