Csharp winform实现基本绘图
1. Winform如何实现简单绘图
- 如果想要自己画一个圆,矩形或者其他图形,可以使用控件或窗体自带的
Paint
事件,在事件中引用Graphics
对象; - 也可以使用某个窗体或者控件的
CreateGraphics
方法 - 需要引用
using System.Drawing.Drawing2D;
(要画3D就用DirectX)
2. 使用Form1窗体Paint事件
- 步骤:
- 先画一个画板
Graphics g = e.Graphics;
- 再拿一支笔
Pen p = new Pen(Color.Blue, 2);
- 然后就可以开始画画了,代码及效果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13private 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,高为100
g.DrawEllipse(p, 10, 10, 100, 100);//在画板上画圆,起始坐标为(10,10),外接矩形的宽为100,高为100
}
- 先画一个画板
3.使用CreateGraphics
方法
- 在按钮的Click事件中做一个画板,使用
CreateGraphics
方法,代码及效果如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41private 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);
}
Csharp winform实现基本绘图
http://example.com/2024/09/05/Winform下的画板/