C# WinForms使用HatchBrush绘制模式填充示例
在C# Windows Forms开发中,若需为控件或自定义绘图区域添加具有纹理感的背景(如斜线、点阵等),可使用 HatchBrush 类。该类别名画刷,允许开发者以简洁代码实现复杂的视觉填充效果。
结果与目标
在窗体上绘制一个填充了特定图案(如 Divot 样式)的矩形,区分前景色与背景色,提升界面视觉层次感。
准备条件
- 开发环境:Visual Studio 及 .NET Framework 或 .NET Core/5+ (含 System.Windows.Forms 和 System.Drawing 库)。
- 命名空间:确保引入
System.Drawing和System.Drawing.Drawing2D。 - 资源依赖:无需外部图片或字体文件,纯 API 实现。
真实操作顺序
第1步:初始化窗体与事件绑定
目的:建立响应式绘图入口,通常绑定至按钮点击或窗体加载事件。
入口:Form Designer 或构造函数中关联 Click 事件。
动作:创建一个 Button 控件,并将其 Click 事件指向自定义处理方法(如 button1_Click)。
第2步:实例化 HatchBrush 对象
目的:定义图案类型及颜色方案。
入口:System.Drawing.Drawing2D.HatchBrush 构造函数。
动作:调用构造函数传入三个关键参数:
HatchStyle枚举值:决定图案形状(如Divot,Vertical,SmallConfetti等)。Color:前景色(图案线条颜色)。Color:背景色(底色)。
重要参数示例:
HatchBrush hatch = new HatchBrush(
HatchStyle.Divot,
Color.DarkBlue, // 前景色
Color.White // 背景色
);
第3步:获取 Graphics 上下文并执行填充
目的:将定义的画刷应用到具体几何形状。
入口:当前窗体或控制器的 CreateGraphics() 方法。
动作:从窗体获取 Graphics 对象,调用 FillRectangle 方法,传入上一步创建的 HatchBrush 和目标矩形区域坐标。
可观察完成状态:屏幕上对应矩形区域内显示出由 DarkBlue 线条构成的 Divot 图案,背景为白色。
代码片段:
Graphics formGraphics = this.CreateGraphics();
formGraphics.FillRectangle(hatch, new RectangleF(90.0F, 110.0F, 100, 100));
formGraphics.Dispose(); // 注意:及时释放非双缓冲绘制的资源
第4步:异常处理与安全清理
目的:防止因资源竞争或系统限制导致的崩溃。
动作:包裹绘图逻辑于 try-catch 块中。虽然 HatchBrush 极少引发文件路径异常(不同于 ImageBrush),但捕获通用异常有助于调试。务必调用 Dispose() 释放 Graphics 对象,避免内存泄漏。
完成判断与排错
运行程序并触发点击事件后,检查指定坐标区域是否呈现预期的图案填充。若未显示,请确认:
- 是否遗漏了
using System.Drawing.Drawing2D;。 - 矩形坐标是否在屏幕可视范围内。
Graphics` 对象是否正确创建且未被提前销毁。
简要总结
通过组合 HatchStyle 枚举与双色配置,HatchBrush 为 C# 桌面应用提供了轻量级的纹理填充方案。此方法无需加载外部图像文件,适合动态生成报表背景或基础 UI 装饰元素。
以上就是C# HatchBrush用法详解与WinForms模式画刷代码实例的详细内容,更多关于C#图形绘制与System.Drawing的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













