ListView 更改表头字体颜色
来源:互联网 发布:网络运营公司赚钱吗 编辑:程序博客网 时间:2024/05/16 03:05
对于强迫症的我来说,ListView控件的表头字体一直是黑色无法更改是一个很蛋疼的问题。在网上查阅了很多资料但是写法都比较繁琐。
于是我直接分析了微软的源码,他是在DrawListViewColumnHeaderEventArgs这个类里面实现的绘制标题。源码如下:
public void DrawText() { HorizontalAlignment textAlign = this.header.TextAlign; TextFormatFlags flags = (textAlign == HorizontalAlignment.Left) ? TextFormatFlags.Default : ((textAlign == HorizontalAlignment.Center) ? TextFormatFlags.HorizontalCenter : TextFormatFlags.Right); flags |= TextFormatFlags.WordEllipsis; this.DrawText(flags); } public void DrawText(TextFormatFlags flags) { string text = this.header.Text; int width = TextRenderer.MeasureText(" ", this.font).Width; Rectangle bounds = Rectangle.Inflate(this.bounds, -width, 0); TextRenderer.DrawText(this.graphics, text, this.font, bounds, this.foreColor, flags); }
期初我直接自己new DrawListViewColumnHeaderEventArgs(),把需要更改的值全部传入构造函数。但是问题来了。
他并不能像默认的样式一样左对齐时左边的缩进在6个像素左右。其实也很容易解决就是把-width改为-width/2即可。
于是这一纠结的问题至此全部解决,源码如下:
protected override void OnDrawColumnHeader(DrawListViewColumnHeaderEventArgs e) { e.DrawBackground(); HorizontalAlignment textAlign = e.Header.TextAlign; TextFormatFlags flags = (textAlign == HorizontalAlignment.Left) ? TextFormatFlags.Default : ((textAlign == HorizontalAlignment.Center) ? TextFormatFlags.HorizontalCenter : TextFormatFlags.Right); flags |= TextFormatFlags.VerticalCenter; string text = e.Header.Text; int width = TextRenderer.MeasureText(" ", e.Font).Width; Rectangle bounds = Rectangle.Inflate(e.Bounds, -width / 2, 0); //这里我设置的标题颜色为红色,若需要更改只需要更改Color.Red即可。 TextRenderer.DrawText(e.Graphics, text, e.Font, bounds, Color.Red, flags); } protected override void OnDrawItem(DrawListViewItemEventArgs e) { e.DrawDefault = true; }
阅读全文
0 0
- ListView 更改表头字体颜色
- 更改ListView字体颜色
- Android ListView 如何 更改字体颜色,字体类型等参数
- Android ListView 如何更改字体颜色,字体类型等参数
- Android ListView 如何更改字体颜色,字体类型等参数
- 更改TextView字体颜色
- 更改状态栏字体颜色
- 更改putty字体颜色
- listview改变字体颜色
- ListView修改字体颜色
- ListView改变字体颜色
- iOS更改状态栏字体颜色
- 【Android】更改 TimePicker 字体颜色
- 更改UIAlertAction的字体颜色
- 更改TabBar的字体颜色
- 系统状态栏字体颜色更改
- ListView选中更改背景颜色
- 修改listview字体的颜色
- 嵌入式六部曲
- python 第三课
- 设置Hbase的环境变量
- error:src refspec master does not match any
- 网络Cisco实验-交换机路由器综合实验(静态路由)
- ListView 更改表头字体颜色
- [leetcode] 21. Merge Two Sorted Lists
- PC重装机
- poj2104 K-th Number(整体二分+树状数组)
- Linux软连接与硬连接
- 性感的spring-springMVC code-based
- 对HTML属性总结
- Vue新手入门-3
- UFLDL 教程学习笔记:1.稀疏自编码器