078画笔和画刷

    Pen类用于告诉Graphics实例如何绘制线条。Brush类则用于告诉Graphics实例如何填充绘制区域。在绘图时不需要调用这两个类的方法,只需要使用所需的颜色和其他属性构造一个Pen实例或Brush实例,再把它传送给相应的绘图类。

1.Brush

     画刷Brush是一个抽象的基类。要实例化Brush对象,应使用派生于Brush类的子类,

System.Drawing.SolidBrush定义单色画笔。 画笔用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。
System.Drawing.TextureBrush这种对象使用图像来填充形状的内部。
System.Drawing.Drawing2D.HatchBrush用阴影样式、前景色和背景色定义矩形画笔。
System.Drawing.Drawing2D.LinearGradientBrush使用线性渐变封装 Brush
System.Drawing.Drawing2D.PathGradientBrush封装 Brush 对象,它通过渐变填充 GraphicsPath 对象的内部。

2  Pen

     Pen类表示画笔,用于绘制一个线条。在使用Pen类时,需要指定线条的宽度(像素),对于一条比较宽的线段,还要确定如何填充该线条中的区域。粗线条中的区域可以用纯色填充,或者使用画刷Brush填充。也就是说,Pen实例可以包含Brush实例的引用。这是非常有用的,因为这表示可以绘制有影线填充或线性阴影的线条。

构造函数

 
Pen(Brush)

使用指定的 Pen 初始化 Brush 类的新实例。

Pen(Brush, Single)

使用指定的 Pen 和 Brush 初始化 Width 类的新实例。

Pen(Color)

用指定颜色初始化 Pen 类的新实例。

Pen(Color, Single)

用指定的 Pen 和 Color 属性初始化 Width 类的新实例。

3  绘制图形和线条

    System.Drawing.Graphics类提供了很多方法,利用这些方法可以绘制各种线条、空心图形和实心图形。

DrawArc(Pen, Rectangle, Single, Single)

绘制一段弧线,它表示 Rectangle 结构指定的椭圆的一部分。

DrawBezier(Pen, Point, Point, Point, Point)

绘制由 4 个 Point 结构定义的贝塞尔样条。

DrawClosedCurve(Pen, Point[])

绘制由 Point 结构的数组定义的闭合基数样条。

DrawCurve(Pen, Point[])

绘制经过一组指定的 Point 结构的基数样条。

DrawEllipse(Pen, Int32, Int32, Int32, Int32)

绘制一个由边框定义的椭圆,该边框由矩形的左上角坐标、高度和宽度指定。

DrawIcon(Icon, Int32, Int32)

在指定坐标处绘制由指定的 Icon 表示的图像。

DrawIcon(Icon, Rectangle)

在 Icon 结构指定的区域内绘制指定的 Rectangle 表示的图像。

DrawIconUnstretched(Icon, Rectangle)

绘制指定的 Icon 表示的图像,而不缩放该图像。

DrawImage(Image, Int32, Int32)

在由坐标对指定的位置,使用图像的原始物理大小绘制指定的图像。

DrawImageUnscaled(Image, Int32, Int32)

在由坐标对指定的位置,使用图像的原始物理大小绘制指定的图像。

DrawLine(Pen, Int32, Int32, Int32, Int32)

绘制一条连接由坐标对指定的两个点的线条。

DrawLine(Pen, Point, Point)

绘制一条连接两个 Point 结构的线。

DrawPath(Pen, GraphicsPath)

绘制 GraphicsPath

DrawPie(Pen, Int32, Int32, Int32, Int32, Int32, Int32)

绘制一个扇形,该形状由一个坐标对、宽度、高度以及两条射线所指定的椭圆定义。

DrawPolygon(Pen, Point[])

绘制由一组 Point 结构定义的多边形。

DrawRectangle(Pen, Int32, Int32, Int32, Int32)

绘制由坐标对、宽度和高度指定的矩形。

DrawRectangles(Pen, Rectangle[])

绘制一系列由 Rectangle 结构指定的矩形。

DrawString(String, Font, Brush, PointF)

在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。

Imports System.Drawing
Imports System.Drawing.Drawing2D

示例:

(1)创建一个Windows窗体应用程序UsingBrushAndPen.
(2)为了使用新画笔,需指定导人命名空间System.Drawing.Drawing2D:

Imports System.Drawing
Imports System.Drawing.Drawing2D

    (3)为窗体Forml类添加一些额外属性,其中包含了要绘制图形的位置信息,以及要使用的各种画刷和画笔:

    Private rectangleBounds As Rectangle = New Rectangle(New Point(10, 10), New Size(20, 120))
    Private ellipseBounds As Rectangle = New Rectangle(New Point(50, 10), New Size(20, 150))
    Private bluePen As Pen = New Pen(Brushes.Blue, 3)
    Private solidYellowBrush As Brush = New SolidBrush(Color.Yellow)
    Private linearGradientBrush As Brush = New LinearGradientBrush(ellipseBounds, Color.Blue, Color.Wheat, 45)

4)为窗体类添加Print事件处理程序。
 

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        Dim dc As Graphics = e.Graphics
        dc.FillRectangle(Brushes.White, ClientRectangle)
        dc.FillRectangle(solidYellowBrush, rectangleBounds)
        dc.FillRectangle(linearGradientBrush, ellipseBounds)
        dc.FillEllipse(Brushes.Beige, New Rectangle(80, 20, 50, 30))
        dc.FillPie(Brushes.BurlyWood, New Rectangle(80, 60, 50, 50), 90, 120)
        dc.DrawLine(bluePen, ClientRectangle.Location, ClientRectangle.Location + ClientRectangle.Size)
    End Sub

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ngbshzhn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值