C# WinForms使用HatchBrush绘制模式填充示例

江屿
江屿
发布时间:2026-10-13 | 2人浏览过
原创

在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 构造函数。
动作:调用构造函数传入三个关键参数:

  1. HatchStyle 枚举值:决定图案形状(如 Divot, Vertical, SmallConfetti 等)。
  2. Color:前景色(图案线条颜色)。
  3. 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 对象,避免内存泄漏。

完成判断与排错

运行程序并触发点击事件后,检查指定坐标区域是否呈现预期的图案填充。若未显示,请确认:

  1. 是否遗漏了 using System.Drawing.Drawing2D;。
  2. 矩形坐标是否在屏幕可视范围内。
  3. Graphics` 对象是否正确创建且未被提前销毁。

简要总结

通过组合 HatchStyle 枚举与双色配置,HatchBrush 为 C# 桌面应用提供了轻量级的纹理填充方案。此方法无需加载外部图像文件,适合动态生成报表背景或基础 UI 装饰元素。

以上就是C# HatchBrush用法详解与WinForms模式画刷代码实例的详细内容,更多关于C#图形绘制与System.Drawing的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表