日期:2014-05-17  浏览次数:20895 次

winfrom 用panel 实现地图功能....
winfrom 用panel 加载一张地图,通过移动状态条来制作一个地图的功能,要求图片可以基于鼠标当前点放大缩小,可以进行鼠标拖拽....并且在放大缩小的要效果体验良好,我现在弄的会闪动,无拖拽,基于鼠标点放大缩小也没弄出来,摆脱各位指点一二....

------解决方案--------------------
闪动 采用双缓冲技术
缩放 监听鼠标滑轮滚动事件 设置panel的大小
拖放代码:
       Point downP;
        private void mapPanel1_MouseDown(object sender, MouseEventArgs e)
        {
            downP = e.Location;
        }

        private void mapPanel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Cursor = Cursors.SizeAll;
                Point px = new Point(Location.X + e.X - downP.X,
                     Location.Y + e.Y - downP.Y);
                mapPanel1.Left += px.X;
                mapPanel1.Top += px.Y;
                //外框如果有滚动条  对应改变滚动条的值
             }
             else
            {
               Cursor = Curosrs.Default;
            }
        }