51Halcon机器视觉

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 5596|回复: 14
收起左侧

[待解决] c# WPF ,使用HWindowControlWPF控件缩放和移动图片

[复制链接]
  • TA的每日心情
    害羞
    2019-1-2 09:20
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    1

    主题

    23

    帖子

    506

    积分

    Rank: 3

    积分
    506

    切换助手验证会员

    发表于 2017-10-22 11:06:49 | 显示全部楼层 |阅读模式

    部门助理 |主题 1|帖子 23|积分 506

    51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

    您需要 登录 才可以下载或查看,没有帐号?会员注册

    x
           最近刚刚学习WPF和halcon的联合编程,在需求中需要创建模板,但是由于图片比较大直接在界面上画出目标区域偏差太大,所以想让图片能够放大和移动,这样会比较方便。我利用HHWindowControlWPF的鼠标事件结合WPF封装的ScaleTtransForm和TranslateTransform类编写。但是当我操作时,没有事件触发,有没有知道原因的。麻烦大家了。
            下面贴上我的程序
           1.xaml 对应的程序:
           <Window
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:HalconDotNet="clr-namespace:HalconDotNet;assembly=halcondotnet" x:Class="Halcon界面.MainWindow"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Button x:Name="openImage" Content="打开图片" HorizontalAlignment="Left" Margin="137.791,264.045,0,0" VerticalAlignment="Top" Width="100.373" Height="31.18" Click="openImage_Click"/>
            <Button x:Name="operateImage" Content="处理图片" HorizontalAlignment="Left" Margin="307.941,264.045,0,0" VerticalAlignment="Top" Width="103.358" Height="31.18" Click="operateImage_Click"/>
            <HalconDotNet:HWindowControlWPF x:Name="image"  HorizontalAlignment="Left"  Margin="87.045,34.195,0,0" VerticalAlignment="Top" Width="320" Height="224.85"
                                            MouseLeftButtonDown="image_MouseLeftButtonDown"
                                            MouseLeftButtonUp="image_MouseLeftButtonUp"
                                            MouseMove="image_MouseMove"
                                            MouseWheel="image_MouseWheel"
                                            MouseLeave="image_MouseLeave"
                                            RenderOptions.BitmapScalingMode="NearestNeighbor" ImagePart="0,0,1024,1024" MouseDown="image_MouseDown" MouseUp="image_MouseUp">
                <HalconDotNet:HWindowControlWPF.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform x:Name="stf"></ScaleTransform>
                        <TranslateTransform x:Name="tlt"></TranslateTransform>
                    </TransformGroup>
                </HalconDotNet:HWindowControlWPF.RenderTransform>
            </HalconDotNet:HWindowControlWPF>
        </Grid>
    </Window>

    2. cs 文件

       private bool isMouseLeftButtonDown = false;
       Point previousMousePoint = new Point();
    //鼠标左键按下消息
            private void image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                isMouseLeftButtonDown = true;
                previousMousePoint = e.GetPosition(image);
            }
            //鼠标左键弹起消息
            private void image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
            {
                isMouseLeftButtonDown = false;
            }
            //鼠标离开消息
            private void image_MouseLeave(object sender, MouseEventArgs e)
            {
                isMouseLeftButtonDown = false;
            }
            private void image_MouseMove(object sender, MouseEventArgs e)
            {
                if (isMouseLeftButtonDown)
                {
                    Point position = e.GetPosition(image);
                    tlt.X = position.X - this.previousMousePoint.X;
                    tlt.Y = position.Y - this.previousMousePoint.Y;
                }
            }

            private void image_MouseWheel(object sender, MouseWheelEventArgs e)
            {
                Point centerPoint = e.GetPosition(image);
                double val = (double)e.Delta / 2000;
                if (stf.ScaleX < 0.3 && stf.ScaleY < 0.3 && e.Delta < 0)
                {
                    return;
                }
                stf.CenterX = centerPoint.X;
                stf.CenterY = centerPoint.Y;
                stf.ScaleX += val;
                stf.ScaleY += val;
            }


    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2019-1-2 09:20
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    1

    主题

    23

    帖子

    506

    积分

    Rank: 3

    积分
    506

    切换助手验证会员

     楼主| 发表于 2017-10-22 11:07:51 | 显示全部楼层

    部门助理 |主题 1|帖子 23|积分 506

    希望大家能够帮忙解决一下

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2019-1-2 09:20
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    1

    主题

    23

    帖子

    506

    积分

    Rank: 3

    积分
    506

    切换助手验证会员

     楼主| 发表于 2017-10-22 17:25:28 | 显示全部楼层

    部门助理 |主题 1|帖子 23|积分 506

    为什么我写的鼠标触发事件没有反应呢

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-4-19 16:23
  • 签到天数: 26 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    0

    主题

    56

    帖子

    134

    积分

    Rank: 1

    积分
    134
    发表于 2017-10-23 20:52:35 | 显示全部楼层

    试用员工 |主题 0|帖子 56|积分 134

    学习一下,看是否有人解决。。

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 453 天

    连续签到: 2 天

    [LV.9]以坛为家II

    111

    主题

    534

    帖子

    2891

    积分

    Rank: 9

    积分
    2891

    热心会员突出贡献切换助手验证会员最佳新人

    发表于 2017-10-24 22:26:34 | 显示全部楼层

    管理员 |主题 111|帖子 534|积分 2891

    尝试下打断点跟踪下是否事件正确触发,要么就是触发事件不对。

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2019-1-2 09:20
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    1

    主题

    23

    帖子

    506

    积分

    Rank: 3

    积分
    506

    切换助手验证会员

     楼主| 发表于 2017-10-28 20:39:56 | 显示全部楼层

    部门助理 |主题 1|帖子 23|积分 506

    我也想实现,但是实现不了

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2019-1-2 09:20
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    1

    主题

    23

    帖子

    506

    积分

    Rank: 3

    积分
    506

    切换助手验证会员

     楼主| 发表于 2017-10-28 20:40:31 | 显示全部楼层

    部门助理 |主题 1|帖子 23|积分 506

    IronMan 发表于 2017-10-24 22:26
    尝试下打断点跟踪下是否事件正确触发,要么就是触发事件不对。

    加断点,但是不会触发断点

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    开心
    11 小时前
  • 签到天数: 453 天

    连续签到: 2 天

    [LV.9]以坛为家II

    111

    主题

    534

    帖子

    2891

    积分

    Rank: 9

    积分
    2891

    热心会员突出贡献切换助手验证会员最佳新人

    发表于 2017-10-29 15:52:38 | 显示全部楼层

    管理员 |主题 111|帖子 534|积分 2891

    SUTKZC 发表于 2017-10-28 20:40
    加断点,但是不会触发断点

    这就说明功能不对,哈哈!按钮事件没有触发事件函数

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-3-7 14:29
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    3

    主题

    71

    帖子

    153

    积分

    Rank: 2Rank: 2

    积分
    153
    发表于 2017-11-4 11:26:49 | 显示全部楼层

    正式员工 |主题 3|帖子 71|积分 153


    新手过来学习学习

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

  • TA的每日心情
    害羞
    2018-12-3 21:24
  • 签到天数: 48 天

    连续签到: 1 天

    [LV.5]常住居民I

    0

    主题

    10

    帖子

    503

    积分

    Rank: 5Rank: 5Rank: 5

    积分
    503
    发表于 2017-11-16 20:51:16 | 显示全部楼层

    部门总监 |主题 0|帖子 10|积分 503

    新手请教openImage_Click 和 operateImage_Click的函数:handshake

    1.发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

    2.提问请组织好自己的逻辑,标题注明大概是什么问题,问题内容写详细,需提供问题症状、错误代码、截图、位置等等信息,不要让别人去猜你想问啥;

    3.如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题前面加上【已解决】

    4.回报帮助你解决问题的坛友,右下角【免费评分】赠与对方视觉币和热心值,伸手党遭人唾弃,做一个热心并受欢迎的人!

    您需要登录后才可以回帖 会员登录 | 会员注册

    本版积分规则

    51Halcon会员技术交流会员技术交流 | 51Halcon官方客服咨询官方客服咨询 | Halcon切换助手使用反馈切换助手使用反馈 | 51Halcon论坛管理团队论坛管理团队

    申请友链| 小黑屋| 手机版| Archiver|  

    粤ICP备15095995号-2 粤公网安备44030602000670号

    Powered by 51Halcon机器视觉 X3.4 Licensed© 2015-2019 Comsenz Inc.

    快速回复 返回顶部 返回列表