|
|
有胆有识的砖头 · How to retrieve Appx ...· 1 年前 · |
|
|
玉树临风的楼房 · python读取文件并计算平均值-掘金· 2 年前 · |
|
|
激动的充值卡 · svn创建分支 —— svn使用笔记之四 ...· 2 年前 · |
|
|
烦恼的四季豆 · 计算物理基础:第十章-物理综合应用习题 - 知乎· 2 年前 · |
|
|
烦恼的哑铃 · 取消ts校验的注释 - 南风晚来晚相识 ...· 2 年前 · |
有没有可能关闭WPF
ListView
的选择,这样当用户单击行时,该行不会突出显示?
我希望第1行在单击时看起来像第0行。
可能相关:我可以样式化悬停/选择的外观吗?例如:要将蓝色渐变悬停外观(第3行)替换为自定义纯色。我找到了 this 和 this ,不幸的是帮不上忙。
(在不使用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>
发布于 2009-06-26 21:18:23
根据Martin Konicek的评论,要以最简单的方式完全禁用对项目的选择:
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Focusable" Value="false"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
但是,如果您仍然需要ListView的功能,比如能够选择一个项目,那么您可以直观地禁用所选项目的样式,如下所示:
您可以通过多种方式完成此操作,从更改ListViewItem的 ControlTemplate 到只设置样式(简单得多)。您可以使用 ItemContainerStyle 为ListViewItems创建样式,并在选中时“关闭”背景和边界画笔。
<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}" />
发布于 2010-07-11 21:57:40
摩尔的答案不起作用,这里的页面:
Specifying the Selection Color, Content Alignment, and Background Color for items in a ListBox
解释了它不能工作的原因。
如果你的listview只包含基本的文本,解决这个问题的最简单的方法就是使用透明画笔。
<Window.Resources>
<Style TargetType="{x:Type ListViewItem}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#00000000"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#00000000"/>
</Style.Resources>
</Style>
</Window.Resources>
如果列表视图的单元格包含诸如组合框之类的控件,这将产生不希望的结果,因为它还会更改它们的颜色。若要解决此问题,必须重新定义控件的模板。
<Window.Resources>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border SnapsToDevicePixels="True"
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<GridViewRowPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Columns="{TemplateBinding GridView.ColumnCollection}"
Content="{TemplateBinding Content}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled"
Value="False">
<Setter Property="Foreground"
Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
发布于 2014-11-07 23:23:15
将每个ListViewItem的样式设置为false。
<ListView ItemsSource="{Binding Test}" >
|
|
有胆有识的砖头 · How to retrieve Appx package install location in PowerShell programmatically - Microsoft Q&A 1 年前 |
|
|
玉树临风的楼房 · python读取文件并计算平均值-掘金 2 年前 |
|
|
烦恼的四季豆 · 计算物理基础:第十章-物理综合应用习题 - 知乎 2 年前 |
|
|
烦恼的哑铃 · 取消ts校验的注释 - 南风晚来晚相识 - 博客园 2 年前 |