首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WPF Datagrid在IsMouseOver上将BorderBrush添加到行导致行移位

WPF DataGrid是一种用于显示和编辑数据的控件,它可以以表格的形式展示数据,并支持对数据进行排序、过滤和分组等操作。在WPF DataGrid中,IsMouseOver属性表示鼠标是否悬停在某一行上。

当将BorderBrush添加到行上时,可能会导致行的移位。这是因为当行的边框颜色发生变化时,其尺寸可能会发生变化,从而影响行的布局。

为了解决这个问题,可以考虑以下几种方法:

  1. 使用样式和触发器:在DataGrid中为行定义样式,通过使用触发器来在鼠标悬停时更改行的边框颜色。这样可以保持行的布局不变。
  2. 使用附加属性:可以定义一个附加属性,在该属性的setter中更改行的边框颜色。然后,通过绑定该属性到行的IsMouseOver属性来实现当鼠标悬停时改变边框颜色。这样也可以避免行的移位问题。
  3. 使用模板列:可以使用模板列来替代默认的DataGrid行,通过自定义模板来实现鼠标悬停时边框颜色的变化,同时保持行的布局不变。

需要注意的是,以上方法只是解决了WPF DataGrid在IsMouseOver上将BorderBrush添加到行导致行移位的问题,具体实现方式可能因具体业务需求和UI设计而有所不同。

推荐的腾讯云相关产品和产品介绍链接地址: 腾讯云基础云产品:https://cloud.tencent.com/product 腾讯云人工智能服务:https://cloud.tencent.com/product/ai 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer 腾讯云移动开发平台:https://cloud.tencent.com/product/mps 腾讯云存储服务:https://cloud.tencent.com/product/cos 腾讯云区块链服务:https://cloud.tencent.com/product/baas 腾讯云元宇宙产品:https://cloud.tencent.com/product/qgame/Overview

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF DataGrid 如何将被选中行带到视野中

WPF DataGrid 如何将被选中行带到视野中 目录 前言 准备工作 方法一 方法二 总结 独立观察员 2021 年 12 月 11 日 前言 WPF 开发中,显示表格一般使用 DataGrid...使用的还是之前用过的 DataGrid 的 Demo 程序(WPF DataGrid 通过自定义表头模拟首固定》和《WPF 触屏事件后触发鼠标事件的问题及 DataGrid 误触问题》中用过),加了一个可以填写要选中的行号的文本框...我们先将数据添加到 10 条,然后缩小程序的窗口,这样有些数据就在滚动区外面了,也就是不在视野中。...类似于这个帖子的情况《WPF 开启行虚拟化的时候,选择功能不正常,求解决方案》(https://bbs.csdn.net/topics/392666509): 所以如果因为数据量比较大必须开启行虚拟化时...先给 DataGrid 命个名(如 x:Name="Dg" )方便后台使用,然后 ViewModel 中添加一个选中项改变事件 SelectedItemChanged,并在选中项改变时调用(参数为选中行的索引

1.9K10
  • OEA 中 WPF 树型表格虚拟化设计方案

    导致界面的速度比较慢,特别是较多数据需要展现时。经检测,表现虽然表格的已经做了虚拟化,但是由于列非常多,最终还是造成可视树中的元素过多,而导致界面布局代码运行过慢。...但是,要同时一个表格控件中同时实现行、列虚拟化呢?我们得先看看如何在 WPF 中实现虚拟化。...还好,WPF 自带的 DataGrid 也带有行列虚拟化的功能,我们可以先看一下 DataGrid 是如何实现的。 下图是 DataGrid 打开行、列虚拟化功能后生成的可视树: ?    ...未来的改进     其实,TreeGrid 作为 OEA 框架界面层的核心控件,主要是提供 WPF 中的树型表格及一般表格功能。一般表格状态下的性能保障由虚拟化技术来实现。...这导致了当每一的高不统一时,竖向滚动条会计算出错,造成很差的用户体验。

    2.7K70

    【我们一起写框架】MVVM的WPF框架(三)—数据控件

    因为WPF里的控件大多继承自Control,所以我们先创建Control的数据控件。...因为WPF的UI控件被创建以后,要被添加到视觉树中,所以最终会被显示屏幕上的是包裹着控件的视觉树;其中视觉树与控件是可以分离的;比如控件中绑定的数据是10,而视觉树可以显示3。...很简单,因为ObservableCollection继承了INotifyCollectionChanged,即,数据控件进行[]的增删,也会让UI进行[]的增删。...因为DataGrid数据控件是所有数据控件中最复杂的,而且代码量特别多;所以,我决定,单拿出一篇来介绍DataGrid。 框架代码已经传到Github上了,并且会持续更新。...相关文章: 【我们一起写框架】MVVM的WPF框架(一)—序篇 【我们一起写框架】MVVM的WPF框架(二)—绑定 To be continued——DataGrid Github地址:https://

    2.4K30

    Newbeecoder.UI新版开源控件库DataGrid使用说明

    DataGrid控件显示数据和信息的集合。WPF能自定义外观,单元格,表格头部,字体,颜色等内容。 使用ItemsSource属性进行数据源绑定,绑定任何实现IEnuemerable的数据源。...GridLinesVisibility使网格线可见、AreRowDetailsFrozen冻结详细信息。Microsoft Docs对DataGrid每项功能有详细说明。...样式中有常见的表格选项,如交替背景和显示/隐藏标题,网格线和滚动条。多个样式和模板属性,通过对ColumnHeaderStyle,CellStyle,RowStyle自定义样式达到设计需求。...Newbeecoder.UI是一个轻量级和扩展性的开源项目,基于MVVM开发框架,可用来快速搭建WPF应用程序,而无需了解控件内部实现细节,方便扩展更多控件样式以及使用,该项目使用纯C#+WPF开发,易于扩展和集成到开发项目中...Demo下载: Newbeecoder.UI.zip Newbeecoder.UI控件库根据用户需求开发稳定而高效项目,通过视频来演示控件库整体功能: 视频内容 ​ 控件库中使用DataGrid很简单

    2.9K30

    WPF【框架学习】MVVM初探(经典)

    ; dish.Comment = d.Element("Comment").Value; dish.Score = double.Parse(d.Element("Score").Value); //添加到...继承NotificationObject之后,ViewModel当中书写”数据属性”,如上例所属的:"IsSelected",由上述架构图可知,数据属性View以及ViewModel之间是双向关联的...其实会发现,ViewModel当中并没有很强的业务逻辑,业务逻辑更多的是放到Service当中的,ViewModel当中所存放的内容,更多的会是一些属性,包括命令属性、数据属性,这些用于和View进行绑定...,通过Binding,发现,后台的数据改变了,直接就会在前台页面上更新,这就是MVVM + WPF的魅力之一。...如下,是示例中的View: <Border BorderBrush="Orange"

    2.5K20

    【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解

    一、DataGrid控件详解WPF中的DataGrid是一个非常强大和灵活的控件,它可用于展示和编辑数据。...DataGrid还有许多其他的属性和方法,可以根据需求进行使用。1.属性介绍WPFDataGrid控件的常见属性如下:AutoGenerateColumns:是否自动生成列,默认为true。...CanUserAddRows:是否允许用户新增,默认为true。CanUserDeleteRows:是否允许用户删除,默认为true。...2.常用场景WPFDataGrid控件常用场景包括以下几个方面:数据展示:DataGrid控件可以方便地展示数据表格,特别是当数据量比较大时,使用DataGrid可以快速地进行数据查看和筛选。...数据编辑:DataGrid控件可以支持数据的编辑,包括单元格编辑、编辑和列编辑等方式,方便用户对数据进行修改和更新。

    1.2K00

    WPF 触屏事件后触发鼠标事件的问题及 DataGrid 误触问题

    WPF 触屏事件后触发鼠标事件的问题及 DataGrid 误触问题 目录 一、触屏事件连带触发鼠标事件的问题 二、DataGrid 误触问题及解决方法 独立观察员 2021 年 10 月 10 日 一、...注意,本文将在上篇文章《WPF DataGrid 通过自定义表头模拟首固定》的示例程序基础上进行演示,建议先看看那篇文章。下面开始改造。...原因是,改变事件 SelectionChanged 是 PreviewMouseDown 事件之后触发的,如果在 PreviewMouseDown 中将事件标记为已处理,那么改变事件也就不会触发了...选是的时候不会有误触现象,选否的时候,鼠标操作的话也正常,而如果在弹窗时通过触屏点击了否,然后界面空白处(这里是右侧的信息区)触屏点击几下,就会在表格上,之前点击要切换到的那一上产生一个鼠标事件...这里是演示,实际使用时,识别到是误触,就可以直接返回而不用弹窗了。 问题解决了,那么原因呢?对于触屏操作产生鼠标事件,这个是微软为了兼容性而导致的,前面也说过了。

    2.8K10

    WPF 属性变动后的业务处理及恢复原始值的方法

    WPF 属性变动后的业务处理及恢复原始值的方法独立观察员 2023 年 2 月 26 日一、前言本文主要介绍 WPF 中,当属性变动后,如何依据是哪个属性变动了,以及其变动的值的情况来进行相应业务处理的推荐的方式...):然后,既然是还原属性值,还是会导致属性变动,所以需要有个忽略操作,不然就死循环了。...WPF 元素导出为图片的方法让 WPF 的 RadioButton 支持再次点击取消选中的功能WPF DataGrid 如何将被选中行带到视野中WPF 触屏事件后触发鼠标事件的问题及 DataGrid...误触问题WPF DataGrid 通过自定义表头模拟首固定WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换【翻译】WPF 中附加行为的介绍 Introduction...实现 RadioButton 的当前样式效果WPF 原生绑定和命令功能使用指南WPF 用户控件的自定义依赖属性 MVVM 模式下的使用备忘 WPF 的 MVVM 模式中使用 OCX 组件第三方库使用

    3.4K50

    【我们一起写框架】MVVM的WPF框架(五)—完结篇

    DataGrid高级应用 高级应用中,我们对表格增加了过滤功能。界面效果如下: ?...代码中可以看到,我们为Filter赋值了一个匿名委托;这个委托有一个入参和一个返回值;其中,入参是我们表格中的的DataContext,返回值是Bool类型,表示这行在表格中是否显示。...接下来,我们委托中对的DataContext数据进行了比较处理,根据比较结果来确定,该行是否显示。...= "用户信息列表"; DataGrid.SkipNumber = 3; DataGrid.BindSource(Load, null); } 代码中可以看到,我们首先通过testDataProxy.GetDataGridConfig...相关文章: 【我们一起写框架】MVVM的WPF框架(一)—序篇 【我们一起写框架】MVVM的WPF框架(二)—绑定 【我们一起写框架】MVVM的WPF框架(三)—数据控件 【我们一起写框架】MVVM的WPF

    2.2K40

    WPF DataGrid 通过自定义表头模拟首固定

    WPF DataGrid 通过自定义表头模拟首固定 独立观察员 2021 年 9 月 25 日 最近工作中要在 WPF 中做个表格,自然首选就是 DataGrid 控件了。...问题是,UI 设计的表格是有一个新增按钮,那一样式和其它数据是一样的,就在表头下面那行。...经过搜索解决方案,发现没有能直接方便地使用的,有个国外大佬问答网站上提供了尾行固定的方案,并且说了一句,首固定更简单,只需要自定义表头就行了。...主要就是原来表头的基础上新增了一,第一还是放原来的表头内容(基本就是标题文本),然后第二就是空出来,给有需要的特殊列留好空间,或者说是与特殊列统一,具体见下图: 特殊表头样式继承于普通表头样式...整个表头内容占据的就是特殊表头样式中那个同样跨了两的 ContentPresenter,只需要设置内容,不需要设置框架和样式,因为已经特殊列表头样式中设置好了。

    2.4K10

    OEA 中 WPF 树型表格整体重构

    但是, WPF 环境下,一直没有找到比较好用的 TreeGrid。而我们的 TreeGrid,由于之前做得一直不彻底,代码比较乱,经常出现 BUG,修改起来也非常费时。...而我们的表格 API,也应该象 WPF 原生的 System.Windows.Controls.DataGrid 控件接口类似。...例如:表格由组成、由格子组成、可以通过数据找到对应的、再通过找到对应的格子等。这里,我分析了一下 DataGrid 中,认为一些比较重要的 API: ?... WPF 中,界面最终的渲染效果,是由可视树决定的。而每个可视树元素的测量、布局等行为,则是依赖于元素本身的数据,通过元素本身的算法决定。    ...查看 WPF 源码时,可以经常看到一些代码,通过可视树关系查找指定类型的元素后,再要对元素的可空性进行判断。而经常做这些可空性检测的原因是,WPF 控件的设计要求,各控件互相之间没有必然的联系。

    1.8K60
    领券