Graphics类绘制直线与拖动

转自:http://blog.csdn.net/hi_kong/article/details/46363145

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中其他的内容。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值