基本绘图工具

绘图的基本工具包括Pen和Brush,在GDI+中,可以使用Pen对象和Brush对象呈现图形、文本和图像。Pen类的实例用于绘制线条和空心形状;Brush类派生的任何类的实例用于填充形状或绘制文本。

Pen

可用于绘制句用指定宽度和样式的线条、曲线以及勾勒形状轮廓。Pen类的常用属性如表所示。

属性说明
Color获取或设置通过Pen类的对象绘制的直线的颜色
DashStyle获取或设置通过Pen类的对象绘制的虚线的样式
DashPattern获取或设置对自定义虚线的空白区域和长度进行定义的浮点值数组
PenType只读属性,检索通过Pen类对象绘制的直线的样式
StartCap获取或设置LineCap枚举值,该值指定了通过Pen对象绘制的直线起点样式
EndCap获取或设置LineCap枚举值,该值指定了通过Pen对象绘制的直线终点样式

使用Pen对象在窗体中画一个红色圆形

private void Form1_Paint(object sender, PaintEventArgs e)
{
	Graphics g = this.CreateGraphics();//创建Graphics对象
	Pen p = new Pen(Color.Red, 1);//定义红色画笔
	g.DrawEllipse(p, 0, 0, 200, 200);//化圆形
	g.Dispose();//释放Graphics资源
}

效果展示
在这里插入图片描述

Brush

是一个抽象的类,在GDI+中提供5个类,扩展了Brush类并提供了具体的实现方式,如表所示。

说明
SolidBrush使用纯颜色填充图形
TextureBrush使用基于光栅的图像填充图形
LinearGradientBrush使用颜色渐变填充图形
PathGradientBrush使用渐变色填充图形,渐变方向是从有路径定义的图形边界指向图形的中心
HatchBrush使用各种图案填充图形

1.SolidBrush类
用于定义单色画笔,画笔用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。
例子:使用SolidBrush类填充图形

private void Form1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = this.CreateGraphics();//创建Graphics对象
    Brush brush = new SolidBrush(Color.Black);//定义黑色的画笔
    g.FillEllipse(brush, 200, 0, 200, 200);//填充椭圆
    g.Dispose();//释放Graphics资源
}

效果展示
在这里插入图片描述
2.Texturebrush类
用于基于光栅的图形来填充
例子:使用图片填充圆形。

private void Form1_Paint(object sender, PaintEventArgs e)
 {
     string path = @"C:\Users\admin\Desktop\OIP-C.jfif";
     Graphics g = this.CreateGraphics();
     Bitmap img = new Bitmap(path);//创建Bitmap对象
     Brush brush = new TextureBrush(img);//创建Brush对象
     g.FillEllipse(brush,400,0,200,200);//使用brush填充图形
     brush.Dispose();//释放brush使用的资源
     g.Dispose();//释放Graphics使用的资源
 }

效果展示
在这里插入图片描述

3.LinearGradientBrush类
用于定义线性渐变画笔,可以是双色渐变,也可以是多色渐变。默认情况下,渐变由起始颜色沿着水平方向平均过渡到终止颜色,若要定义多色渐变,需要使用InterpolationColors属性。
例子:使用水平线渐变画笔填充圆形。

 private void Form2_Paint(object sender, PaintEventArgs e)
 {
     LinearGradientBrush lgb = new LinearGradientBrush(
        new Point(0, 0),//定义起点
        new Point(200, 200),//定义终点
        Color.FromArgb(255, 0, 0, 255),//起始颜色为蓝色
        Color.FromArgb(255, 0, 255, 0)//终止颜色为绿色
        );
     e.Graphics.FillEllipse(lgb, 0, 0, 200, 200);//填充圆形
 }

效果展示
在这里插入图片描述
4.PathGradientBrush类
用于自定义用渐变色填充形状,路径是由GraphicsPath对象维护的一系列线条和曲线。
例子:使用PathGradientBrush类填充圆形。

private void Form3_Paint(object sender, PaintEventArgs e)
{
    GraphicsPath gp = new GraphicsPath();
    gp.AddEllipse(0, 0, 200, 200);//添加一个圆形 
    PathGradientBrush pgb = new PathGradientBrush(gp);//创建一个画笔
    pgb.CenterColor = Color.FromArgb(255, 0, 0, 255);//设置渐变中心颜色
    Color[] colors = { Color.FromArgb(255, 0, 255, 255) };//创建颜色数组
    pgb.SurroundColors = colors;
    e.Graphics.FillEllipse(pgb,0,0,200, 200);//填充圆形
}

效果展示
在这里插入图片描述
5.HatchBrush类
阴影图案由两种颜色组成,一种是背景色;另一种是在背景色上形成图案的线条的颜色。可以使用HatchBrush类对象填充阴影图案闭合的形状。
例子:使用HatchBrush类填充圆形

private void Form4_Paint(object sender, PaintEventArgs e)
{
    //创建HatchBrush对象
    HatchBrush hb = new HatchBrush(HatchStyle.LargeCheckerBoard, Color.Red,Color.Yellow);
    e.Graphics.FillEllipse(hb,0,0,200,200);//填充圆形
}

效果显示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值