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

WPF DataGrid的单元格颜色恢复为默认值

WPF DataGrid 是一种在 Windows Presentation Foundation (WPF) 应用程序中显示数据网格的控件。 DataGrid 控件通常用于显示大量数据,如员工信息、订单记录等。

在 WPF DataGrid 中,单元格的颜色在初次渲染后可能会被更改,例如高亮显示某一行或某一列。当需要将 DataGrid 控件的单元格颜色恢复为默认值时,可以使用以下代码:

代码语言:csharp
复制
var defaultDataGridTemplate = (DataTemplate)FindResource("DataGridTemplate");
foreach (var column in dataGrid.Columns)
{
    var cellTemplate = column.Template;
    var binding = cellTemplate.FindProperty("Background") as Binding;
    binding.Source = defaultDataGridTemplate.FindResource(column.Header.ToString()) as Brush;
}

这段代码首先找到 DataGrid 控件的默认模板,然后遍历所有列,找到每列的模板,并从模板中获取单元格背景颜色的 Binding。接着,将找到的默认颜色绑定到 Binding 中,从而将单元格颜色恢复为默认值。

需要注意的是,这段代码只能在 WPF 应用程序中使用,因为 DataGrid 控件只能在 WPF 应用程序中使用。如果需要在 WinForms 应用程序中使用 DataGrid 控件,可以使用 Windows Forms DataGrid 控件代替 WPF DataGrid 控件。

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

相关·内容

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

DataGrid控件显示数据和信息集合。在WPF能自定义外观,单元格,表格头部,字体,颜色等内容。 使用ItemsSource属性进行数据源绑定,绑定任何实现IEnuemerable数据源。...默认情况下,当用户单击DataGrid单元格时会选择整行,如果用户选择多行设置SelectionMode属性。假如不想生成自动列使用AutoGenerateColumns属性设置false。...Microsoft Docs对DataGrid每项功能有详细说明。 在样式中有常见表格选项,如交替行背景和显示/隐藏标题,网格线和滚动条。...Newbeecoder.UI是一个轻量级和扩展性开源项目,基于MVVM开发框架,可用来快速搭建WPF应用程序,而无需了解控件内部实现细节,方便扩展更多控件样式以及使用,该项目使用纯C#+WPF开发,易于扩展和集成到开发项目中...只要你已有系统是使用WPF开发,你都能够使用Newbeecoder.UI来轻易开发出你好看应用程序来集成到你现有项目之中。

2.9K30

WPF备忘录(3)如何从 Datagrid 中获得单元格内容与 使用值转换器进行绑定数据转换IValueConverter

一、如何从 Datagrid 中获得单元格内容    DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它 items. ...但是,WPFDataGrid 不同于Windows Forms中 DataGridView。 ...在DataGridItems集合中,DataGridRow 是一个Item,但是,它里面的单元格却是被封装在 DataGridCellsPresenter 容器中;因此,我们不能使用 像DataGridView.Rows.Cells...这样语句去获得单元格内容。...但是,在WPF中我们可以通过可视树(VisualTree) 去进入到控件“内部“, 那么,我们当然可以通过VisualTree进入DataGridDataGridRow 和 DataGridCellsPresenter

5.5K70

C# WPF DataGrid获取单元格并改变背景色

01 概述 WPF 自带了一个表格控件datagrid,这个控件类似winfrom中datagridview,在数据显示时候也经常会用到,这节主要讲解如何从后台代码获取到单元格控件并改变其相关属性:...> 04 解析 ① 因为我需要绑定SelectedCellsChanged事件,所以前台将默认行选中模式修改为单元格选中模式: SelectionMode="...;//获取选中单元格列号 ④获取选中行行号 在SelectionUnit="FullRow" 时候: 可以通过这样获取: rowindex = this.dgSourceData.SelectedIndex...;//获取选中单元格行号 在当SelectionUnit="Cell"时: 我是通过选中单元格对应行信息和表格控件绑定集合匹配获取行号: for (int i = 0; i < ShellViewModel.StudentList.Count...:" + i.ToString()); rowindex = i; } } ⑤获取选中单元格并改变字体颜色

2.7K20

盘点7个开源WPF控件

1、一个可拖拉实现列表排序WPF开源控件 项目简介 gong-wpf-dragdrop是一个开源.NET项目,用于在WPF应用程序中实现拖放功能,可以让开发人员快速、简单实现拖放操作功能。...支持控件有:ListBox、ListView、TreeView和DataGrid、及其他ItemsControl。...3、一套包含16个WPF控件套件 项目简介 这是基于WPF开发开发人员提供了一组方便使用自定义组件,并提供了各种常用示例。...UI控件齐全,并且支持自定义主题颜色、字体等。 核心组件 除了包含标准控件主题外,该套件还包含了一些常用控件:时钟、对话框、浮动按钮、卡片、齐全图标等。...控件核心功能 1、工作簿:支持多工作表、工作表选项卡控件; 2、工作表:支持合并、取消合并、单元格编辑、数据格式、自定义单元格、填充数据序列、单元格文本旋转、富文本、剪贴板、下拉列表单元格、边框、样式、

1.5K20

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

一、DataGrid控件详解WPFDataGrid是一个非常强大和灵活控件,它可用于展示和编辑数据。...CancelEdit():取消当前单元格编辑状态。CommitEdit():提交当前单元格编辑状态。CancelEdit():取消当前单元格编辑状态。Sort():对数据进行排序。...DataGrid还有许多其他属性和方法,可以根据需求进行使用。1.属性介绍WPFDataGrid控件常见属性如下:AutoGenerateColumns:是否自动生成列,默认为true。...数据编辑:DataGrid控件可以支持数据编辑,包括单元格编辑、行编辑和列编辑等方式,方便用户对数据进行修改和更新。...最后,将StudentDialogViewModel传递给StudentDialog.xamlDataContext,即可实现一个简单增删改查功能WPF DataGrid

1.1K00

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

我们得先看看如何在 WPF 中实现虚拟化。...WPF 虚拟化相关知识     我之前写过一篇文章《精通 WPF UI Virtualization》,里面引用了许多老外文章,说明了要实现界面虚拟化需要做几件事。...表格虚拟化     由前面的内容可以看出,如果要在 WPF 中实现一个行列都支持虚拟化 UIVPanel,只需要从 VirtualizingPanel 上继承下一个 UIVPanel 类型,并根据列宽度来计算并生成相应单元格就行了...那么,在这样层次要求下,要如何实现只使用一个滚动条虚拟化呢?还好,WPF 自带 DataGrid 也带有行列虚拟化功能,我们可以先看一下 DataGrid 是如何实现。...由于每一个行 DataContext,也应该是每一个单元格 DataContext,所以 DataGridCellsPresenter.ItemsSource 应该被设置一个数据模型对象列表,其中每一个元素都是

2.7K70

WPF面试题大全,秒杀面试官必备

12、C#中表单界面上,有一个DataGrid控件,如何将SQL数据库里一个表中数据显示在这个控件上,请描述一下操作方法及步骤 ? 13、解释完整WPF对象层次结构 ?...这使得依赖属性可以支持更多功能,如数据绑定和样式。 属性元数据:依赖属性具有属性元数据,用于定义属性行为和特性。属性元数据包括默认值、属性更改回调、验证规则等。...9、解释—下WPFResourceDictionary ? 答:WPFResourceDictionary是一种用于存储资源容器。资源可以是任何类型值,例如字符串、颜色、图像、样式等。...DataGridItemsSource属性上。...这将使DataGrid显示查询结果中数据。 运行应用程序,DataGrid控件将显示来自SQL数据库表数据。 以上代码仅供参考,根据项目的实际情况来调整。 13、解释完整WPF对象层次结构 ?

62610

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

WPF DataGrid 通过自定义表头模拟首行固定 独立观察员 2021 年 9 月 25 日 最近工作中要在 WPF 中做个表格,自然首选就是 DataGrid 控件了。...界面代码结构如下: 可以看到资源里有一个普通表头样式、一个用于特殊列特殊表头样式,还有行样式、单元格样式等,还有个包含了新增按钮控件模板样式。...最后就是表格控件 DataGrid 了,使用了上面这些资源,默认使用是普通表头样式,所以普通列就不用特地指定样式了。...当然,使用 Button 来做也是可以。 最后来看 DataGrid 表格列集合,每列都是 DataGridTemplateColumn 类型。...单元格数据内容,都是设置了数据模板 DataTemplate,普通列是绑定了类某个属性,特殊列这里是一个删除按钮。

2.4K10

WPF --- 如何重写WPF原生控件样式?

引言 上一篇中 WPF --- 重写圆角DataGrid样式,因新产品UI需要,重写了一下微软 「WPF」 原生 DataGrid 样式,包含如下内容: 基础设置,一些基本背景色,字体颜色等。...重写过程中,遇到了两个问题: 如何获取 「WPF」 原生 DataGrid 样式? 滚动条样式中,如何固定滚动条长度? 本篇文章分享一下这两个问题解决办法。...解决方法 我来分别分享一下我遇到这两个问题。 问题1 第一个,如何获取 「WPF」 原生 DataGrid 样式?...这个问题不限于原生 DataGrid 样式,其他一些样式比如 checkBox,RadioButton, ComboBox等。这些控件对于一些初学者来说,很难理解他是怎么实现。...ToggleButton IsChecked true时,展开其内容,它内容就是 ScrollViewer,就是我们看到下拉弹出内容了。

39720

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

WPF 属性变动后业务处理及恢复原始值方法独立观察员 2023 年 2 月 26 日一、前言本文主要介绍在 WPF 中,当属性变动后,如何依据是哪个属性变动了,以及其变动情况来进行相应业务处理推荐方式...;以及如果要恢复属性原始值,可以怎么做。...属性变动后业务处理及恢复原始值方法 [http://dlgcy.com/wpf-after-propertychanged-and-restore-original-value/]WPF我向 ChatGPT...WPF 元素导出图片方法让 WPF RadioButton 支持再次点击取消选中功能WPF DataGrid 如何将被选中行带到视野中WPF 触屏事件后触发鼠标事件问题及 DataGrid...误触问题WPF DataGrid 通过自定义表头模拟首行固定WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换【翻译】WPF 中附加行为介绍 Introduction

3.3K50

dotnet OpenXML 利用合并表格单元格在 PPT 文档插入不可见额外版权信息

本文告诉大家如何利用 Office 对于 OpenXML 支持特性,在 PPT 表格里面,通过合并单元格存放一些额外信息,这些信息对用户来说是不可见,但是进行拷贝表格等时候,可以保存此信息内容...在开始之前,期望大家已了解很多 OpenXML 知识,详细请看 Office 使用 OpenXML SDK 解析文档博客目录 在 PPT 表格里面,采用了 RowSpan 用来表示单元格跨行,对应在下一行单元格将会被标记...例如我对第一行第一个单元格设置合并单元格,合并行,那么在第二行第一列单元格将被标记 vMerge="1" 表示被合并,如下面表格 在 Office 读取 OpenXML 文档,将无视 vMerge...="1" 存在,也就是此属性只是给开发者看而已,无论是否存在都不会影响到单元格合并 但事实上,依然可以在标记了 vMerge="1" 单元格上面添加内容,例如以下有删减 OpenXML 文档...也就是说可以方便在合并单元格里面存放一些版权信息,这些版权信息对于用户来说,除非是特意去更改,否则都会放在文档里面 如果忽略合并单元格,通过 WPF 应用读取文档,使用 DataGrid 在界面显示

96610

您用过这个牛逼WPF拖拽库吗?

GongSolutions.WPF.DragDrop 一个使您能在WPF里更方便使用拖拽功能框架 支持 .NET Framework 4.6.2+, .NET Core 3.1, .NET 5 and...使用附加属性绑定到ViewModel中拖放处理方法,而无需在代码隐藏中放置相关代码。 可用于多选。 可以在同一控件内拖动数据以重新排序,也可以在(不同)控件之间拖动数据。...可用于 ListBox, ListView, TreeView, DataGrid 和其他任何 ItemsControl。 可以将数据项插入、移动或复制到相同/另一个控件(相同数据项类型)集合中。...可以显示装饰器,用户提供正在进行操作视觉反馈。 可以显示拖动项目的预览(预览始终可见)。 具有合理默认值,因此您可以为常见操作编写更少代码。 2....: https://github.com/punker76/gong-wpf-dragdrop [9]LICENSE: https://github.com/punker76/gong-wpf-dragdrop

1.2K20

dotnet 7 WPF 破坏性改动 按下 F3 让 DataGrid 自动排序

本文记录在 dotnet 7 下 WPF 一个破坏性改动。在 dotnet 7 下 WPF 支持 DataGrid 在按下 F3 键时候,自动按照当前所选列进行列自动排序。...: https://github.com/dotnet/wpf/pull/6873 行为上就是在 DataGrid 获取选中和键盘焦点时,按下 F3 键,将会根据当前选中列作为排序依据,进行排序。...先创建一个 WPF dotnet 7 项目,再编辑 csproj 项目文件,设置支持 dotnet 6 和 dotnet 7 两个框架。...F3 键,啥都没有发生 这就是 dotnet 7 在 WPF 引入一个破坏性变更 如果不想要此功能,可以自己通过路由事件吃掉 F3 键,从而不让 DataGrid 排序 protected...dotnet/wpf 我认为在 WPF 这么大体量下,功能性改动,还是需要谨慎一些,毕竟众口难调。

75120

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

WPF 触屏事件后触发鼠标事件问题及 DataGrid 误触问题 目录 一、触屏事件连带触发鼠标事件问题 二、DataGrid 误触问题及解决方法 独立观察员 2021 年 10 月 10 日 一、...触屏事件连带触发鼠标事件问题 这个是 WPF 已知问题,网络上也有一些讨论,但是没有一个完美的方法来解决。...注意,本文将在上篇文章《WPF DataGrid 通过自定义表头模拟首行固定》示例程序基础上进行演示,建议先看看那篇文章。下面开始改造。...通过在网络上苦苦搜索和尝试,在旧版微软社区找到了一个可行方法,帖子《Prevent a WPF application to interpret touch events as mouse events...首先来看看误触现象吧(动图): 也就是,我在行改变事件中加了个弹窗,询问用户是否要切换条目,如果选是的话,不作任何处理,如果选否的话,恢复之前选中项。

2.7K10

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

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

1.9K10

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

GridView控件与其他WPF控件配合使用可以实现更高级功能,例如与TreeView控件配合使用实现分层数据呈现,与DataGrid控件配合使用实现可编辑数据表格呈现等等。...ColumnHeaderToolTip:用于列标题设置工具提示属性。ColumnHeaderTemplate:用于列标题设置自定义模板属性。可以指定模板中元素和样式。...ColumnHeaderContainerStyle:用于列标题设置自定义样式属性。ColumnHeaderContextMenu:用于列标题设置上下文菜单属性。...多样化显示效果:GridView支持多种显示效果,如单元格合并、行列交替显示等。GridView控件是WPF中一个非常实用数据展示控件,适用于各种数据展示和编辑场景。...,并将其设置GridView数据源。

57211
领券