WPF ListView 关闭选择

2023-12-26

是否可以关闭WPF的选择ListView,那么当用户单击行时,该行不会突出显示?

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(使用前将#替换为@)

WPF ListView 关闭选择 的相关文章

  • 创建后如何更新使用 AlertDialog.builder 构建的 AlertDialog 列表中的项目数组

    我使用 AlertDialog builder 创建了一个对话框 显示可以检查的多项选择列表 我设置了初始的项目名称集及其检查状态 builder setMultiChoiceItems saveTargets names saveTarg
  • 检查从 arrayadapter 获取的复选框

    我有标题清单 CheckBox 我想控制默认检查哪一个 所以我试图获得正确的视图并检查它 但由于某种原因它不起作用 知道为什么吗 form checkbox item xml
  • 重写 WPF 工具包图表中的 DataPointStyle

    我想覆盖DataPointStyle of the LineSeries在我的 WPF 工具包中Chart
  • 使用 INotifyPropertyChanged

    有人可以解释一下为什么在 wpf 中使用绑定时需要使用 INotifyPropertyChanged 的 实现吗 我可以在不实现此接口的情况下绑定属性吗 例如我有代码 public class StudentData INotifyProp
  • 无法使用 DialogResult

    我尝试使用DialogResult检查一个Messagebox s 是 否 取消 我正在使用以下代码 我没有看到任何问题 DialogResult dlgResult MessageBox Show Save changes before
  • 使 DataTemplate 可混合

    如何为 ViewModel 制作可混合的数据模板 可在表达式混合中设计 当我转到资源并尝试直接编辑数据模板时 我在绘图板上看到的只是一个空白矩形 这是因为 DataTemplate 没有绑定到任何东西 当然 我可以创建一个 UserCont
  • ItemSource 中具有不同类型数据的 ListView 多行列标题

    继续this https stackoverflow com q 26712051 1997232问题 我想实现这种ListView 它应该有两件事 多行列标题 不同的数据类型通过绑定ItemsSource以不同方式显示 为了解决 1 我尝
  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 如何在C#背后的代码中动态创建数据模板并绑定TreeView分层数据

    我有一个场景 其中树视图动态更改其数据模板和数据绑定定义 我在 XAML 中创建了一个树视图 如下所示
  • Winforms 中的 WPF ElementHost 最大化时崩溃 (Windows)

    我正在尝试将新的 WPF 控件集成到现有的 WinForms 应用程序中 并使用 ElementHost Dock Fill 来托管以下 XAML UserControl NET 4 当我将 WinForm 设置为最大化时 我的整个操作系统
  • 先学Silverlight还是先学WPF?

    看来 Silverlight WPF 是 NET 用户界面开发的长期未来 这很棒 因为我可以看到在客户端和 Web 开发端重用 XAML 技能的优势 但看看 WPF XAML Silverlight 它们似乎是非常庞大的技术 那么从哪里开始
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • jQuery Mobile:$(...).listview 不是函数

    我正在尝试在 UL 中动态插入 LI 元素后刷新 jQuery Mobile 中的列表视图 每当我尝试 myUL listview refresh 在控制台上我收到错误 未捕获的类型错误 listview 不是函数 我该如何解决这个问题 确
  • 解释 System.Diagnostics.CodeAnalysis.SuppressMessage

    我在某些应用程序中有这种代码 来自微软 assembly System Diagnostics CodeAnalysis SuppressMessage Microsoft Naming CA1702 CompoundWordsShould
  • 使用 ICollectionView 过滤 ObservableCollection

    I have ObservableCollection绑定到dataGrid现在我想过滤我看到需要使用的呈现数据ICollectionView但我不知道如何添加ICollectionView和我的MVVM图案 我的代码简化如下 public
  • 如何在ListView的TextCell中换行文本?

    如何在ListView的TextCell中换行文本 我尝试设置HasUnevenRows to True但这没有帮助 您不能使用 Xamarin 的 开箱即用 TextCell 功能 但是 您应该能够创建一个 ViewCell 并利用换行模
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 当 AutoGenerateColumns = True 时如何重命名 DataGrid 列?

    我有一个简单的数据结构类 public class Client public String name set get public String claim number set get 我正在将其喂入DataGrid this data

随机推荐

  • 是否可以执行 If Else 或 Switch 语句 Firestore 规则

    是否可以在 firestore 规则中执行 Switch 语句或 if else 我试图寻找它 但没有找到答案 我尝试的是 function getTier return get users request auth uid data us
  • Synology 网站简单的“hello world”快速入门使用 python、flask 和 uwsgi

    我注意到 Synology 的本机网站使用 uwsgi 框架 最近添加了对 python 脚本的支持 我想知道是否有人可以帮我找出一个简单的 hello world 示例 我不清楚 uwsgi 文件中应放入什么内容 我按照 uwsgi 文档
  • 这种锁定技术的名称是什么?

    我有一个巨大的 Trove 地图和一个需要从多个线程经常调用的方法 大多数时候这个方法会返回true 线程正在进行大量的数字运算 我注意到由于以下方法而存在一些争用 这只是一个示例 我的实际代码有点不同 synchronized boole
  • Jenkins 构建流程与工作流程(管道)插件

    我注意到 Jenkins 至少 有两个编排选项 构建流程 https wiki jenkins ci org display JENKINS Build Flow Plugin Workflow https github com jenki
  • float 变量不满足条件 (C)

    我试图让用户输入 1 00000 到 0 00001 之间的数字 而边缘不包含在浮点变量中 我可以假设用户在点后输入的数字不超过 5 个 现在 这是我写的 printf Enter required Leibniz gap Between
  • 是否可以更改代理的目标?

    我有一个实现 XMLHttpRequest 接口的类 取决于传递给的 URLopen 我可以确定是使用默认的 XMLHttpRequest 还是我的自定义实现 我的想法是使用代理来执行此操作 let xhr new XHRProxy xhr
  • 仅覆盖分区 Spark 数据集中的部分分区

    我们如何覆盖分区数据集 但只覆盖我们要更改的分区 例如 重新计算上周的日常工作 并且只覆盖上周的数据 Spark 的默认行为是覆盖整个表 即使只写入某些分区 从 Spark 2 3 0 开始 这是覆盖表时的一个选项 要覆盖它 您需要设置新的
  • “pip install --user ...”的目的是什么?

    From pip install help user Install to the Python user install directory for your platform Typically local or APPDATA Pyt
  • 测试元素是否已经有 jQuery datepicker

    我有一个包含许多输入元素的表单 有些是已附加 jQuery UI 日期选择器的日期字段 someElement mask 9 9 99 9999 datepicker showOn button buttonText Click here
  • 如何在 Jetty 9 中访问实例化的 WebSocket?

    这可能是显而易见的 但我对这种范例很陌生 我创建一个 Jetty 服务器并注册我的 websocket 类 如下所示 Server server new Server 8080 WebSocketHandler wsHandler new
  • Postgres 中的运算符 ~<~

    Originally part of this question https stackoverflow com questions 35629454 order by with diacritic in postgres but it w
  • 理解DoFactory设计模式的UML——装饰器

    我试图理解下面链接中描述装饰器模式的 UML 图 http www dofactory com Patterns PatternDecorator aspx http www dofactory com Patterns PatternDe
  • 在根文件夹下获取 javascript 时出现 403 禁止错误

    我的根文件夹下有 javascripts 文件夹 到目前为止一切正常 突然 脚本文件夹下的所有 javascript 开始出现以下错误 我今天所做的唯一更改是 在网站根目录下部署了一些文件 这些文件是asp文件 我根本没有将任何文件部署到脚
  • Laravel 5. 使用 USING 运算符

    我尝试了很长时间才找到它 我不敢相信Laravel没有这个功能 所以 我可以写 select from a join b where a id b id 或者更漂亮 select from a join b using id 第一种情况对于
  • Pandas 与带有 WHERE 子句的 JOIN 类似

    我正在 python 的 pandas 中连接两个数据框 A 和 B 目标是接收来自 B 的所有纯行 sql 模拟 在 A client id B client id 上右连接 B 其中 A client id 为 null 在 panda
  • 如何使用 runhaskell 增加堆栈大小?

    我正在编写一些一次性 Haskell 脚本来解决一些问题欧拉计划 http projecteuler net问题 我真的不想编译它们 因为我经常需要进行大量的更改 但在某些情况下 我发现堆栈空间不足 的文档runhaskell表示以下语法应
  • MySQL 5.6 中的全局查询超时

    我需要在我的应用程序中在全局级别应用查询超时 查询 SET SESSION max execution time 1MySQL 5 7 就是这样做的 我使用的是MySQL 5 6 目前无法升级 任何使用 SQL Alchemy 的解决方案也
  • jSpinner时间选择器模型编辑

    我有 jSpinner 用于时间选择 问题一 用户可以编辑小时分钟和秒分隔符 并可以写入额外的数字 例如 123 问题2 模型始终获取当前时间 我想要 00 00 00 当我在代码中编写此内容而不是 hh mm ss 时 用户无法编辑这些值
  • Hibernate 4 -> 5 迁移:NamingStrategy 更改,找不到表

    我想做的事 我正在尝试从 WildFly 8 2 0 迁移到 WildFly 10 0 0 这意味着我已经 并且想要 从 Hibernate 4 3 迁移到 Hibernate 5 0 Setup Java 8u40 Spring 4 1
  • WPF ListView 关闭选择

    是否可以关闭WPF的选择ListView 那么当用户单击行时 该行不会突出显示 source konim5am at artax karlin mff cuni cz https artax karlin mff cuni cz 7Ekon