本文主要是介绍DevExpress GridView列标题自定义背景颜色,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
(Dev 19.2版本不需要这些处理,默认就可以直接设置颜色)
DevExpress GridView 列标题的颜色是跟随皮肤的,直接修改BackColor是无效的,除非去掉皮肤,若不想去皮肤或者修改皮肤的话,可以采用gridview的CustomDrawColumnHeader事件去处理,
注册这个事件,颜色设置直接设置GridColumn的backColor即可。
注册事件:
gridview.CustomDrawColumnHeader+=OnCustomDrawColumnHeader
方法一:
private void OnCustomDrawColumnHeader(object sender,ColumnHeaderCustomDrawEventArgs e){//背景颜色没有设置且为空,则默认if (e.Column == null || (e.Column.AppearanceHeader.BackColor == Color.Empty && !e.Column.AppearanceHeader.Options.UseBackColor))return;Rectangle rect = e.Bounds;rect.Inflate(-1, -1);// 填充标题颜色.e.Graphics.FillRectangle(new SolidBrush(e.Column.AppearanceHeader.BackColor), rect);e.Appearance.DrawString(e.Cache, e.Info.Caption, e.Info.CaptionRect);// 绘制过滤和排序按钮.foreach (DrawElementInfo info in e.Info.InnerElements){if (!info.Visible) continue;ObjectPainter.DrawObject(e.Cache, info.ElementPainter, info.ElementInfo);}e.Handled = true;}
方法二:
private void OnCustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e) { if (e.Column == null) return; if ( e.Column.AppearanceHeader.BackColor != Color.Empty) { e.Info.AllowColoring = true; }
}
在设计器设置列的AppearanceHeader 的相关属性即可
效果图:
这篇关于DevExpress GridView列标题自定义背景颜色的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!