C#Graphics类绘制直线与拖动
2015-06-04 16:04
351 查看
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中其他的内容。
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中其他的内容。
相关文章推荐
- c#调用COM组件
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#中Equality和Identity浅析
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程
- C#托管堆对象实例包含内容分析
- C#实现按照指定长度在数字前补0方法小结
- C#虚方法的声明和使用实例教程
- C#获取文件夹及文件的大小与占用空间的方法
- C#定义简单的反射工厂实例分析
- C#数字图象处理之肤色检测的方法
- C#实现用于操作wav声音文件的类实例
- C#选择排序法实例分析
- C#线程间不能调用剪切板的解决方法