和上一贴相同,本帖是其功能的一个拓展,实现图片放大之后的拖拽,如google地图,在地图放大后,拖拽到局部部分查看细节,代码如下:
private void chartControlRunTime_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
initialPoint = e.Location;
}
}
private void chartControlRunTime_MouseUp(object sender, MouseEventArgs e)
{
lastPoint = e.Location;
int xOffset, yOffset;
xOffset = lastPoint.X - initialPoint.X;
yOffset = lastPoint.Y - initialPoint.Y;
chartControlRunTime.Location = new Point(chartControlRunTime.Location.X + xOffset, chartControlRunTime.Location.Y + yOffset);
}
initialPoint和lastPoint已经定义,分别记录鼠标按下和松开时,其指向位置。定义如下:private Point initialPoint;private Point lastPoint。本功能的实现原理是:分别记录鼠标按下和释放时的位置,计算出其位差xOffset、yOffset,然后修改图片的location即可。