博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 自定义DataGrid控件样式
阅读量:6413 次
发布时间:2019-06-23

本文共 3530 字,大约阅读时间需要 11 分钟。

内容转自https://www.cnblogs.com/xiaogangqq123/archive/2012/05/07/2487166.html

一、DataGrid基本样式(一)

小刚已经把DataGrid的样式写的很完整了,这里我做点补充,先贴上基本样式的代码:

引用示例:

初始化绑定数据C#代码:

public partial class MainWindow : Window    {        public MainWindow()        {            InitializeComponent();            StudentList = new List
() { new StudentInfo() { Name="张三", Class="三班", Sex="男", ClassRank=10, SchoolRank=103 }, new StudentInfo() { Name="李四", Class="三班", Sex="男", ClassRank=12, SchoolRank=110 }, new StudentInfo() { Name="李梅", Class="三班", Sex="女", ClassRank=3, SchoolRank=70 }, }; this.DataGrid.ItemsSource = StudentList; } public List
StudentList { get; set; } public class StudentInfo { public string Name { get; set; } public string Class { get; set; } public string Sex { get; set; } public int ClassRank { get; set; } public int SchoolRank { get; set; } }

效果展示:

二、DataGrid基本样式(二)

上面的代码实现了隔行换色的效果,但是没有鼠标选中效果。另外有些用户希望能够进行列头拖动及排序。那么就需要做以下更改:

添加DataGridRow样式:

在引用时,设置DataGrid的RowStyle="{StaticResource AlertCount1}"且AlternationCount="1"。这样就可以实现突出选中效果,取消隔行显示效果。要实现表头拖动,使用上面的样式代码是不行的,上面的样式代码去掉了拖动的控件。要实现拖动需要将其加上。

下面是对DataGrid控件的补充:

控件常用方法:

BeginEdit:使DataGrid进入编辑状态。

CancelEdit:取消DataGrid的编辑状态。

CollapseRowGroup:闭合DataGrid的行分组。

CommitEdit:确认DataGrid的编辑完成。

ExpandRowGroup:展开DataGrid的行分组。

GetGroupFromItem:从具体Item中得到分组。

ScrollIntoView:滚动DataGrid视图。

 

控件常用属性:

AlternatingRowBackground:获取或设置一个笔刷用来描绘DataGrid奇数行的背景。

AreRowDetailsFrozen:获取或设置一个值用来判断是否冻结每行内容的详细信息。

AreRowGroupHeadersFrozen:获取或设置一个值用来判断是否冻结分组行的头部。

AutoGenerateColumns:获取或设置一个值用来判断是否允许自动生成表列。

CanUserReorderColumns:获取或设置一个值用来判断是否允许用户重新排列表列的位置。

CanUserSortColumns:获取或设置一个值用来判断是否允许用户按列对表中内容进行排序。

CellStyle:获取或设置单元格的样式。

ColumnHeaderHeight:获取或设置列头的高度。

ColumnHeaderStyle:获取或设置列头的样式。

Columns:获取组件中包含所有列的集合。

ColumnWidth:获取或设置列宽。

CurrentColumn:获取或设置包含当前单元格的列。

CurrentItem:获取包含当前单元格且与行绑定的数据项。

DragIndicatorStyle:获取或设置当拖曳列头时的样式。

DropLocationIndicatorStyle:获取或设置呈现列头时的样式。

FrozenColumnCount:获取或设置冻结列的个数。

GridLinesVisibility:获取或设置网格线的显示形式。

HeadersVisibility:获取或设置行头及列头的显示形式。

HorizontalGridLinesBrush:获取或设置水平网格线的笔刷。

HorizontalScrollBarVisibility:获取或设置水平滚动条的显示样式。

IsReadOnly:获取或设置DataGrid是否为只读。

MaxColumnWidth:获取或设置DataGrid的最大列宽。

MinColumnWidth:获取或设置DataGrid的最小列宽。

RowBackground:获取或设置用于填充行背景的笔刷。

RowDetailsTemplate:获取或设置被用于显示行详细部分的内容的模板。

RowDetailsVisibilityMode:获取或设置一个值用以判定行详细部分是否显示。

RowGroupHeaderStyles:获取呈现行分组头部的样式。

RowHeaderStyle:获取或设置呈现行头的样式。

RowHeaderWidth:获取或设置行头的宽度。

RowHeight:获取或设置每行的高度。

RowStyle:获取或设置呈现行时的样式。

SelectedIndex:获取或设置当前选中部分的索引值。

SelectedItem:获取或设置与当前被选中行绑定的数据项。

SelectedItems:获取与当前被选中的各行绑定的数据项们的列表(List)。

SelectionMode:获取或设置DataGrid的选取模式。

VerticalGridLinesBrush:获取或设置垂直网格线的笔刷。

VerticalScrollBarVisibility:获取或设置垂直滚动条的显示样式。

 

所有代码已经上传到github:

转载于:https://www.cnblogs.com/xiaomingg/p/8736305.html

你可能感兴趣的文章
给年轻工程师的十大忠告(转载)
查看>>
Java访问USB设备
查看>>
服务端 REST与页面兼容的URL设计
查看>>
servlet中的客户端和服务端跳转
查看>>
六、Python自动化运维入门(面向对象编程)
查看>>
linux下svn命令大全
查看>>
java数据库MySql以及SQL语句
查看>>
dom4j.Document 遍历节点信息
查看>>
推荐漂亮的flash网页MP3音乐播放器
查看>>
Nginx的TCP负载均衡介绍
查看>>
企业IM-3 InIOCP组件介绍-Client管理
查看>>
虚拟机中的Linux安装VMware Tools的方法
查看>>
JSP学习笔记(一)
查看>>
chromedriver@2.X.X install: `node install.js` 问题
查看>>
Android 来去电自动录音 (三)
查看>>
rpmbuild
查看>>
网络中均分负载流量
查看>>
OpenStack封装Windows镜像之Installing Cloudbase-Init
查看>>
Spring-基于Spring自定义标签
查看>>
Centos+iptables+l7-filter 封QQ MSN和P2P
查看>>