C#画笔Pen用法实例

Oliver
Oliver
发布时间:2026-10-13 | 1人浏览过
原创

C# 中的 System.Drawing.Pen 类用于创建实线画笔,可控制线条的颜色、宽度和端点样式。本文将演示如何通过继承 Form 的按钮事件,初始化 Pen 并调用 Graphics.DrawLine 在窗体上绘制一条带有特殊线帽的蓝色粗线。

结果或目标

程序运行后,点击界面上的 button1,将在坐标 (10, 50) 到 (100, 50) 之间绘制一条蓝色的水平直线。该直线宽度为 12 像素,且两端具备钻石形状的锚点线帽。

准备条件

  • 使用 .NET Framework 或 .NET Core/5+ 的 Windows Forms 项目。
  • 确保已添加对 System.Drawing 和 System.Windows.Forms 的引用。
  • 设计界面中包含一个名为 button1 的按钮控件及其对应的 Click 事件处理方法。

真实操作顺序

第1步:引入必要的命名空间

目的:访问绘图类库。
入口:源文件顶部。
动作:添加 using 指令以简化类型名称。
重要参数:System.Drawing, System.Drawing.Drawing2D, System.Windows.Forms
完成状态:代码不再报错未定义的类名。

using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;

第2步:在事件中创建 Pen 对象

目的:定义绘制线条的外观。
入口:Button Click 事件内部。
动作:实例化 Pen,指定颜色与宽度。
重要参数:Color.Blue, 12 (宽度)
完成状态:pen 变量持有有效的画笔实例。

Pen pen = new Pen(Color.Blue, 12);

第3步:配置线帽属性 (EndCap)

目的:自定义线条端点的形状,提升视觉辨识度。
入口:Pen 对象属性。
动作:将 EndCap 设为 LineCap.DiamondAnchor。
重要参数:LineCap.DiamondAnchor
完成状态:线条两端将出现钻石形装饰。

pen.EndCap = LineCap.DiamondAnchor;

第4步:获取 Graphics 上下文并绘制线条

目的:执行实际的绘图命令。
入口:Form 的 CreateGraphics 方法。
动作:创建 Graphics 对象,调用 DrawLine。
重要参数:起始点 (10, 50),结束点 (100, 50)
完成状态:屏幕上显示绘制的直线。

Graphics g = this.CreateGraphics();
g.DrawLine(pen, 10, 50, 100, 50);

第5步:完整代码结构

将上述步骤整合至 Windows Forms 应用程序的主窗体代码中。注意:直接调用 CreateGraphics() 绘制的内容在窗口重绘时可能会消失,生产环境中建议重写 OnPaint 或使用双缓冲技术。

namespace WindowsApplication2
{
  public partial class Form11 : Form
  {
    public Form11()
    {
      InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
      // 1. 创建画笔:蓝色,宽度12像素
      Pen pen = new Pen(Color.Blue, 12);
      
      // 2. 设置线帽样式为钻石锚点
      pen.EndCap = LineCap.DiamondAnchor;
      
      // 3. 获取当前窗体的绘图表面
      Graphics g = this.CreateGraphics();
      
      // 4. 绘制从 (10,50) 到 (100,50) 的直线
      g.DrawLine(pen, 10, 50, 100, 50);
      
      // 建议使用后释放资源,尽管此处为简单示例未强制Dispose
      // g.Dispose(); 
      // pen.Dispose();
    }
  }
}

简要总结

以上便是关于 C# 中使用 Pen 类绘制带自定义线帽线条的详细内容。该示例展示了 GDI+ 基础绘图的核心流程,包括画笔初始化、属性配置及图元绘制。更多关于 C# 图形编程的资料请关注本站其它相关文章!

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表