GDI(Graphics Device Interface)+ API,顾名思义通过一组部署为托管代码的类被公开。这组类被称为 GDI+ 的“托管类接口”。托管类接口由以下命名空间组成:
· System.Drawing
· System.Drawing.Drawing2D
· System.Drawing.Imaging
· System.Drawing.Text
· System.Drawing.Printing
其中System.Drawing空间是基本应用,其他为高级。
首先让我们了解一些常用的结构:
Color 表示 ARGB 颜色。
Point 表示在二维平面中定义点的、整数 X 和 Y 坐标的有序对。
PointF 表示在二维平面中定义点的浮点 x 和 y 坐标的有序对。
Rectangle 存储一组整数,共四个,表示一个矩形的位置和大小。对于更高级的区域函数,请使用 Region 对象。
RectangleF 存储一组浮点数,共四个,表示一个矩形的位置和大小。对于更高级的区域函数,请使用 Region 对象。
Size 存储一个有序整数对,通常为矩形的宽度和高度。
SizeF 存储有序浮点数对,通常为矩形的宽度和高度。
常用的类
Pen 画线用
Brush 填充封闭图形用
Font 定义字体格式
Graphics :封装了GDI+的绘图方法,不可继承
Bitmap,Icon,Image 图像相关的类
一个简单的例子:
private void Form2_Paint(object sender, PaintEventArgs e)
{
Graphics gc = e.Graphics;
gc.DrawEllipse(System.Drawing.Pens.Blue, 10, 10, 100, 100 ); //画圆
SolidBrush brush1 = new SolidBrush(Color.Red); //创建一个单色画刷
gc.FillEllipse(brush1, 10, 10, 100, 100); //填充圆
}
说明下: 获取设备相关的Graphics类对象的方法,1、继承自Control的CreateGraphics()方法,2、控件的Paint事件的PaintEventArgs参数。
Brush是抽象类,因此应使用具体的画刷如SolidBrush,HatchBrush,TextureBrush,LinearGradientBrush(渐变画刷),PathGradientBrush。