- 如果想要自己畫一個圓,矩形或者其他圖形,可以使用控制元件或窗體自帶的
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,高為100
g.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);
}