102
|
Martin Konicek Phil Windley · 技术社区 · 15 年前 |
![]() |
1
120
根据Martin Konicek的评论,以最简单的方式完全禁用项目选择:
但是,如果您仍然需要ListView的功能,例如能够选择一个项目,那么您可以像这样直观地禁用所选项目的样式: 您可以通过多种方式执行此操作,从更改ListViewItem的 ControlTemplate 只需设置样式(更容易)。可以使用 ItemContainerStyle 选中后“关闭”背景和边框画笔。
此外,除非您有其他方法通知用户选择了该项(或仅用于测试),否则您可以添加一列来表示该值:
|
![]() |
2
31
摩尔的回答不起作用,这里的页面是: Specifying the Selection Color, Content Alignment, and Background Color for items in a ListBox 解释为什么它不能工作。 如果ListView只包含基本文本,解决此问题的最简单方法是使用透明画笔。
如果ListView的单元格包含诸如组合框之类的控件,这将产生不希望的结果,因为它也会改变它们的颜色。要解决此问题,必须重新定义控件的模板。
|
![]() |
3
16
将每个ListViewItem的样式设置为Focusable设置为false。
|
![]() |
4
12
以下是Blend中ListViewItem的默认模板: 默认ListViewItem模板:
只需删除isselected触发器和isselected/isselectionactive多触发器,将下面的代码添加到样式中以替换默认模板,选择后将不会有任何视觉更改。 关闭IsSelected属性的可视更改的解决方案:
|
![]() |
5
11
最简单的方法是:
|
![]() |
6
8
关于上述解决方案…我将使用多触发器允许鼠标悬空突出显示在选择后继续工作,这样您的ListViewItem的样式将为:
|
![]() |
7
5
ListView的一个属性是
|
![]() |
8
5
好吧,比赛有点晚了,但是这些解决方案都没有像我想做的那样。 这些解决方案有几个问题
我想要一个带有分组标题的列表视图,并且每个列表视图项都应该是“信息性的”,不需要选择或悬停,但是列表视图项中有一个按钮,我希望它可以单击并悬停。 所以,我真正想要的是,listviewitem根本不是listviewitem,所以,我跳过了listviewitem的controlTemplate,把它变成了一个简单的contentControl。
|
![]() |
9
1
这适用于可能遇到以下要求的其他人:
如果您像我一样(将wpf与.NET 4.5结合使用),发现涉及样式触发器的解决方案根本不起作用,那么下面是我的解决方案: 替换样式中ListViewItem的ControlTemplate:
…和数据模板:
运行时结果如下(选中项“b”,项“d”鼠标悬停):
|
![]() |
10
1
使用以下代码:
|
![]() |
11
0
下面的代码禁用listviewitem行选择,还允许添加填充、边距等。
|
![]() |
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 3 年前 |
![]() |
hassan Ma · 从顶部将文本插入WPF文本块 3 年前 |
![]() |
Arijit · 移动画布内绘制的矩形 3 年前 |
![]() |
juraj14466 · C#WPF实时图表将点渲染为图像 3 年前 |