1.移动分为三个步奏,鼠标按下,鼠标移动,鼠标抬起.
2.鼠标按下可以理解为发送一个信号,表示,我要移动啦,然后拿一个全局变量记录鼠标位置点.当然也需要一个全局变量去记住我要移动这个信号.
3.鼠标移动,用移动过后的位置减去移动前位置,获取到变化量,然后将变化量加上,你要移动的对象上,对象就会随着鼠标动了.但是一定要记住,要将移动后新的鼠标位置赋值给全局变量的那个鼠标位置坐标,不然,就会出现计算错乱.
4鼠标抬起,代表移动结束.将全局要移动信号关闭.
public bool IsMove=false;
public Point FirstPT { get; set; }
public void mousedown(Point mousePT)
{
FirstPT =mousePT;
IsMove=true;
}
public void mousemove(Point mousePT)
{
if(IsMove&&FirstPT !=null)
{
var x=mousePT.X-FirstPT.X;
var y=mousePT.Y-FirstPT.Y;
//移动对象的x,y坐标加上计算出x,y坐标
FirstPT =mousePT;//赋值,不能少
}
}
public void mouseup(Point mousePT)
{
IsMove=false;
}