C#中使用Brush创建Pen绘制渐变图形

不晚
不晚
发布时间:2026-10-13 | 4人浏览过
原创

在C#图形编程中,通常使用笔刷(Brush)填充区域,使用画笔(Pen)绘制线条。本文将展示如何将画刷转换为画笔,以实现在绘制的图形轮廓上应用复杂的渐变效果。

实现目标

默认情况下,System.Drawing.Pen 的构造函数接受单一颜色。若要在绘制的线条或形状边缘上使用渐变色彩(如红绿蓝过渡),需要将 Brush 对象赋值给 Pen。这允许绘制出具有复杂视觉效果的边框或路径。

准备条件

  • 项目需引用 System.Drawing 和 System.Drawing.Drawing2D 命名空间。
  • 基于 Windows Forms 应用程序开发环境。

操作步骤

第1步:定义渐变画刷

首先创建一个线性渐变画刷。这里以窗体客户区为矩形范围,初始化一个起始角度为100度的渐变。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace WindowsApplication2
{
  public partial class Form11 : Form
  {
    public Form11()
    {
      InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
      LinearGradientBrush brush = new LinearGradientBrush(this.ClientRectangle, Color.Empty, Color.Empty, 100);
      ColorBlend blend = new ColorBlend();
      blend.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
      blend.Positions = new float[] { 0, .5f, 1 };
      brush.InterpolationColors = blend;
      Pen pen5 = new Pen(brush);
      Graphics g5 = this.CreateGraphics();
      Point[] p = new Point[] { new Point(0, 0), new Point(100, 100), new Point(50, 100), new Point(200, 100) };
      g5.DrawEllipse(pen5, 0, 0, 100, 100);
    }
  }
}

注意:上述代码片段直接展示了完整的操作流程,下面进行详细拆解。

第2步:配置颜色混合(ColorBlend)

为了控制渐变的颜色分布,实例化 ColorBlend 对象。设置需要渐变的颜色数组以及对应的相对位置(0到1之间):

  • Colors: 设置为红色、绿色、蓝色。
  • Positions: 分别对应起始点 (0)、中点 (0.5f) 和终点 (1)。这意味着从起点到终点,颜色将经历红→绿→蓝的平滑过渡。
blend.Colors = new Color[] { Color.Red, Color.Green, Color.Blue };
blend.Positions = new float[] { 0, .5f, 1 };
brush.InterpolationColors = blend;

第3步:将画刷应用于画笔

这是核心步骤。利用 new Pen(brush) 构造函数,将已配置好颜色的画刷赋给画笔对象 pen5。此时,pen5 不再只是单色线条,而是拥有了渐变属性。

Pen pen5 = new Pen(brush);

第4步:执行绘图操作

获取绘图上下文 Graphics 对象,并使用配置好的 pen5 绘制图形。本例中使用了 DrawEllipse 方法,在原点 (0,0) 处绘制宽高均为100像素的椭圆。

Graphics g5 = this.CreateGraphics();
g5.DrawEllipse(pen5, 0, 0, 100, 100);

虽然代码中还定义了 p 数组,但在 DrawEllipse 中未实际使用,该部分为冗余代码,实际绘制结果仅取决于椭圆坐标参数。

完成判断

运行程序并点击按钮后,窗体上将显示一个椭圆形轮廓。该轮廓的颜色将从红色平滑过渡到绿色,再过渡到蓝色,验证了画刷成功赋予了画笔渐变特性。

简要总结

通过以上步骤,我们实现了在C#中将画刷转换为画笔的技术方案。这种方法适用于需要对图形轮廓进行丰富色彩渲染的场景。以上就是C#从画刷创建画笔的详细方法,更多关于C#绘图技术的资料请关注本站其它相关文章!

相关标签:

本站声明

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

Python 相关产品和应用

全部下载

专题列表