LeadTools 移动选择区域

论坛中有用户提出如何通过鼠标移动选择区域,但不希望选择区域图片伴随移动。考虑到会有其他用户也会用到这个场景,所以在此共享给大家。步骤如下:使用 AddRectangleToRegion 设置选择区域:

发布于 2015/08/03 00:00

论坛中有用户提出如何通过鼠标移动选择区域,但不希望选择区域图片伴随移动。考虑到会有其他用户也会用到这个场景,所以在此共享给大家。

步骤如下:

使用 AddRectangleToRegion 设置选择区域:

            codecs = new RasterCodecs();
            rasterImageViewer1.Image = codecs.Load(@"..\..\test.png");
            rasterImageViewer1.InteractiveRegionRectangle += rasterImageViewer1_InteractiveRegionRectangle;
            rasterImageViewer1.InteractiveRegionType = RasterViewerInteractiveRegionType.Rectangle;
            rasterImageViewer1.Image.AddRectangleToRegion(null, new LeadRect(214, 176, 147, 172), RasterRegionCombineMode.Set);

 

该功能需要结合鼠标按下、移动及释放事件进行选择区域的移动:

            rasterImageViewer1.MouseDown += rasterImageViewer1_MouseDown;
            rasterImageViewer1.MouseMove += rasterImageViewer1_MouseMove;
            rasterImageViewer1.MouseUp += rasterImageViewer1_MouseUp;

 

使用 MouseDown 事件开启移动标记位:

        bool flag = false;
        void rasterImageViewer1_MouseDown(object sender, MouseEventArgs e)
        {
            flag = true;
        }

 

在 MouseMove 事件中通过重绘选择区域实现移动:

        void rasterImageViewer1_MouseMove(object sender, MouseEventArgs e)
        {
            if (flag)
            {
                
                LeadRect lr = rasterImageViewer1.Image.GetRegion(null).GetBounds();
                rasterImageViewer1.Image.AddRectangleToRegion(null, new LeadRect(e.X-214, e.Y-176, 147, 172), RasterRegionCombineMode.Set);                
            }
        }

 

在 MouseUp 事件中关闭移动标记:

        void rasterImageViewer1_MouseUp(object sender, MouseEventArgs e)
        {
            flag = false;
        }

 

效果图:

Demo1

Demo 下载:VS2013 + LeadTools V19 + .NET 4.0

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态