- 如果想要自己画一个圆,矩形或者其他图形,可以使用控件或窗体自带的
Paint
事件,在事件中引用Graphics
对象;
- 也可以使用某个窗体或者控件的
CreateGraphics
方法
- 需要引用
using System.Drawing.Drawing2D;
(要画3D就用DirectX)
- 步骤:
- 先画一个画板
Graphics g = e.Graphics;
- 再拿一支笔
Pen p = new Pen(Color.Blue, 2);
- 然后就可以开始画画了,代码及效果如下:
private void Form1_Paint(object sender, PaintEventArgs e){//创建一个winform提供的画板Graphics g = e.Graphics;//需要一支笔Pen p = new Pen(Color.Blue, 2);//开始画画g.DrawLine(p, 10, 10, 100, 100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100)g.DrawRectangle(p, 10, 10, 100, 100);//在画板上画矩形,起始坐标为(10,10),宽为100,高为100g.DrawEllipse(p, 10, 10, 100, 100);//在画板上画圆,起始坐标为(10,10),外接矩形的宽为100,高为100}
3.使用CreateGraphics
方法
- 在按钮的Click事件中做一个画板,使用
CreateGraphics
方法,代码及效果如下:
private void button1_Click(object sender, EventArgs e){Pen p = new Pen(Color.Blue, 5);//设置笔的粗细为,颜色为蓝色Graphics g = this.CreateGraphics();//画虚线p.DashStyle = DashStyle.Dot;//定义虚线的样式为点g.DrawLine(p, 10, 200, 200, 200);//自定义虚线p.DashPattern = new float[] { 2, 1 };//设置短划线和空白部分的数组g.DrawLine(p, 10, 210, 200, 210);//画箭头,只对不封闭曲线有用p.DashStyle = DashStyle.Solid;//恢复实线p.EndCap = LineCap.ArrowAnchor;//定义线尾的样式为箭头g.DrawLine(p, 10, 220, 200, 220);//g.Dispose();//p.Dispose();Rectangle rect = new Rectangle(300, 10, 50, 50);//定义矩形,参数为起点横纵坐标以及其长和宽//单色填充SolidBrush b1 = new SolidBrush(Color.Blue);//定义单色画刷 g.FillRectangle(b1, rect);//填充这个矩形//字符串g.DrawString("字符串", new Font("宋体", 10), b1, new PointF(390, 10));//用图片填充TextureBrush b2 = new TextureBrush(Image.FromFile(@"C:\Users\xiaocuncun\Desktop\屏幕截图 2024-09-05 222652.png"));rect.Location = new Point(300, 70);//更改这个矩形的起点坐标rect.Width = 200;//更改这个矩形的宽来rect.Height = 200;//更改这个矩形的高g.FillRectangle(b2, rect);//用渐变色填充rect.Location = new Point(300, 290);LinearGradientBrush b3 = new LinearGradientBrush(rect, Color.Yellow, Color.Black, LinearGradientMode.Horizontal);g.FillRectangle(b3, rect);}