net: C#

1、创建一个Windows应用程序,点击按钮后,通过Brush对象将绘制的矩形填充为红色(如图所示)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
csharp using System;
using System.Drawing;
using System.Windows.Forms;
namespace RectangleFillExample
{
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e) {
// 创建一个红色画刷
SolidBrush brush = new SolidBrush(Color.Red);
// 创建一个矩形
Rectangle rect = new Rectangle(50, 50, 100, 100);
// 使用画刷填充矩形
e.Graphics.FillRectangle(brush, rect);
// 释放画刷资源
brush.Dispose();
}
}
}

需要注意的是,需要在窗体的 Paint 事件中绘制矩形,并且需要在绘制完毕后释放画刷资源。
现在已经能生成一个红色矩形了,接下来就是让它在点击按钮后生成。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 csharp using System;
using System.Drawing;
using System.Windows.Forms;
namespace RectangleFillExample {
public partial class Form1 :
Form {
public Form1() {
InitializeComponent();
}
private void RedRect_Click(object sender, EventArgs e) {
// 创建一个红色画刷
SolidBrush brush = new SolidBrush(Color.Red);
// 创建一个矩形
Rectangle rect = new Rectangle(50, 50, 100, 100);
// 使用画刷填充矩形
Graphics graphics = this.CreateGraphics();
graphics.FillRectangle(brush, rect);
// 释放画刷和绘图资源
graphics.Dispose();
brush.Dispose();
}
}
}

在该代码中,我们为窗体添加了一个 btnDraw 按钮,并在 btnDraw_Click 事件中调用绘制矩形的代码。需要注意的是,我们需要先获取窗体的 Graphics 对象,然后使用该对象填充矩形,最后释放画刷和绘图资源。

2、创建一个Windows应用程序,向窗体中添加两个Button按钮,分别用于执行绘制直线的两种方法(如图所示)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void button1_Click(object sender, EventArgs e)
{
Graphics g;
g = this.CreateGraphics();
Pen p=new Pen(Color.Black,2);
g.DrawLine(p,375,50,375,100);
g.Dispose();
p.Dispose();
}

private void button2_Click(object sender, EventArgs e)
{
Graphics g;
g = this.CreateGraphics();
Pen p = new Pen(Color.Black, 2);
Point p1 = new Point(75, 75);
Point p2 = new Point(125, 75);
g.DrawLine(p,p1,p2);
g.Dispose();
p.Dispose();
}

调用了两种绘制直线的重载,一个是直接指定开始点和结束点的坐标button1,一个是通过点类传参button2,每次绘制完成后不要忘了释放pen和graphics。

3、创建一个Windows应用程序,通过Graphics类中的DrawEllipse方法绘制一个线条宽度为3的黑色椭圆(如图所示)。

1
2
3
4
5
6
7
8
9
10
11
private void button1_Click(object sender, EventArgs e)
{
Graphics g;
g = CreateGraphics();
Pen p = new Pen(Color.BlueViolet, 3);
RectangleF rect = new RectangleF(50,50,100,50);
g.DrawEllipse(p, rect);
g.Dispose();
p.Dispose();
}

这里根据提示,DrawEllipse 方法需要一个 RectangleF 限制椭圆的位置,因此可以定义先一个 RectangleF 类,简单的定义方法如下:

1
2
public RectangleF (float x, float y, float width, float height);
public RectangleF (System.Drawing.PointF location, System.Drawing.SizeF size);

4、创建一个Windows应用程序,使用Graphics类中的DrawArc方法绘制一条线条宽度为3的黑色圆弧(如图所示)。

1
2
3
4
5
6
7
8
9
10
private void button1_Click(object sender, EventArgs e)
{
Graphics g;
g = CreateGraphics();
Pen p = new Pen(Color.Black, 3);
Rectangle rect = new Rectangle(100, 100, 100, 50);
g.DrawArc(p, rect, 0,270);
p.Dispose();
g.Dispose();
}

和画椭圆是一样的,只是多了一个起始和终止角度。

5、创建一个Windows应用程序,通过Graphics类中的DrawPie方法绘制一个线条宽度为3的黑色扇形,它的起始坐标分别为50和50(如图所示)。

1
2
3
4
5
6
7
8
9
10
 private void button1_Click(object sender, EventArgs e)
{
Graphics g;
g = CreateGraphics();
Pen p = new Pen(Color.Black, 3);
Rectangle rect = new Rectangle(50, 50, 100, 50);
g.DrawPie(p, rect, 70, 170);
g.Dispose();
p.Dispose();
}

与画圆弧同理。

6、创建一个Windows应用程序,通过Graphics类中的DrawPolygon方法绘制一个线条宽度为3的黑色多边形(如图所示)。

1
2
3
4
5
6
7
8
9
10
private void button1_Click(object sender, EventArgs e)
{
Graphics g;
g = CreateGraphics();
Pen p = new Pen(Color.Black, 3);
Point[] points = { new Point(50, 50), new Point(100, 50), new Point(150, 100), new Point(100, 150), new Point(50, 150), new Point(0, 100) };
g.DrawPolygon(p, points);
p.Dispose();
g.Dispose();
}

画多边形只要告诉DrawPolygon方法用的笔和几个顶点坐标即可。


References