C#Graphics類繪製直線與拖動

來源:互聯網
上載者:User

Grapgics對象類似畫布或者一張紙,供其他對象在上面作圖。具體用Grapgics類繪製一條直線的方法如下:

Graphics g;
        Pen newPen = new Pen(Color.Yellow);//定義一個畫筆,黃色
        Point startP = new Point(20,20);//線的起始點座標
        Point endP = new Point(100,100);//線的終止點座標
        Line line ;

line = new Line(startP, endP);
        g = this.pictureBox1.CreateGraphics();
        g.DrawLine(newPen, line.startPoint, line.endPoint);//繪製直線

這樣直線就畫出來了,為了能拖動線的終止點,首先當滑鼠線上的終止點上時,變換線的顏色(下面的方法都在MouseMove事件中):

//擷取當前滑鼠位置
        Point p = new Point();
        p.X = e.X;
        p.Y = e.Y;
        Rectangle rect = new Rectangle(line.endPoint.X - 3, line.endPoint.Y - 3, 6, 6);//定義一個地區,當滑鼠在這個地區內時,改變線的顏色
        if (p.X >= rect.X && p.X <= rect.Right && p.Y >= rect.Top && p.Y <= rect.Bottom)
        {
            //當滑鼠靠近線的尾端的時候,變成藍色
            newPen.Color = Color.Blue;
            g.DrawLine(newPen, line.startPoint, line.endPoint);
        }

拖動直線:

//移動直線的時候為紅色
        this.pictureBox1.Refresh();//重新整理介面,不然的話整個介面上到處都是線
        newPen.Color = Color.Red;
        line.endPoint = p;
        g.DrawLine(newPen, line.startPoint, line.endPoint);

上面只是一個簡單的例子,等以後有時間了再好好學習一下Graphics中其他的內容。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.