世界座標:相對於winform窗體來講的,網絡
頁面座標:相對於控件的字體
設置座標:相對於顯示器this
得到Graphics對象通常有兩種方式:操作系統
1.控件.CreateGraphics();//經過該方式建立後要調用g.Dispose()方法釋放資源。orm
2.在重寫OnPaint()方法中經過參數PaintEventArgs e.Graphics;來得到,通常使用爲Paint事件中。//經過這種方式通常不須要手動調用Dispose();對象
什麼樣類型的對象須要使用完成後Dispose()?
答:Pen,Brush,Font,Image,Ico,FileStream(文件操做),網絡操做等。 (在這些類中封裝了一些操做系統的資源)//Pens.XXX或Brushes.XXX等不須要,手動建立的才須要。強行釋放資源會出錯.事件
新建一個畫筆ip
Graphics 變量 = this.CreateGraphics();//this也能夠是控件名稱,表明在那個控件上畫 資源
新建一個畫筆類型io
Pen 變量 = new Pen(Color.Black, 1); //Black顏色 1表明畫筆的寬度
DashStyle 屬性 設置畫筆的類型 在這個命名空間 using System.Drawing.Drawing2D;
pen.DashStyle = DashStyle.Dot;//由點構成的線
pen.DashStyle = DashStyle.Dash;//由線段構成的線
新建一個點
Point 變量 = new Point(X,Y); // X表明x軸 Y表明y軸
新建一種字體變量
Font font = new Font("宋體", 9);
畫筆變量.DrawString("湖南工程職業技術學院", this.Font, Brushes.Red, 10, 50);//
DrawXXX() 畫各類圖形 Pen
FillXXX() 畫實心的 Brush
Ellipse 圓
Rectangle 矩形
g.DrawEllipse(Pens.Black, 10, 100, 80, 80);//空心圓
g.DrawRectangle(Pens.Brown,10,200,100,100);//空心 矩形
g.DrawLine(Pens.BlueViolet,20,30,50,80);//畫一條線 筆的類型,起始點座標,終止點座標
//三個經常使用的封裝
Point p = new Point(10, 280);//對座標點的封裝
Size s = new Size(100,5);//對形狀大小的封裝 封裝一個寬度爲100 高度爲5
Rectangle re = new Rectangle(p, s);//封裝一個矩形區域 p座標點 s大小
g.FillRectangle(Brushes.Aquamarine, re);//根據矩形區域繪畫一個矩形
例:
/// <summary>
/// 畫線條
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
Graphics g = this.CreateGraphics();
Point p = new Point(10, 10);
Point p1 = new Point(10,500);
Pen pen = new Pen(Color.Black, 4);//定義一個黑色 4像素寬的畫筆
//pen.DashStyle = DashStyle.Dot;//由點構成的線
pen.DashStyle = DashStyle.Dash;//由線段構成的線
g.DrawLine(pen, p, p1);//畫一條線
g.Dispose();//釋放資源
}