因为之前遇到的那个halcon处理的图片要转换成ImageSource的问题,迟迟没有找到好的解决方案,
于是决定直接在wpf中使用halcon提供的HWindowControlWPF,用于显示图片。
结果发现这个东西好坑啊,这个东西感觉就是个窗口,不能直接绑定图片资源,不能实现像给Image控件添加Source的那样的功能。
只能够使用HOperatorSet.DispObj 来将图片显示到窗口上。

随之而来的几个问题:

  1. 窗口拉大缩小过程中,图片会消失掉,尝试了各种事件,例如OnHMouseUp,OnMouseDown,还有整个窗口的SizeChange之类的,让这些事件触发的时候全都来个显示图片,然而都不能完全解决这个问题,
    而且很神奇的是图片消失掉之后,点一下这个控件,图片就显示出来了。。。这里可能和我设置的某一个事件有关,没有详细研究。当时试了太多情况了,没有一一记录下来,过后就忘记了。。。
  2. 图片大小不好控制,我像按照一定的尺寸来显示图片,尝试了设置控件的ImagePart,RenderSize,Width,Height等等一系列的属性,但是效果乱七八糟的,等以后有空了可以总结一下是怎么个乱七八糟法。
  3. 网上竟然几乎找不到关于这个控件的使用说明,很绝望。。。连ihalcon论坛里面都没有多少关于这个控件的介绍。很幸运找到了一个别人写的wpf结合halcon控件的一个提取ROI的程序,准备好好研究一下,这个程序也存在图片消失的问题。
  4. OnRender的时候,这个窗口的句柄是没有的,要OnRender之后句柄才会出来,之前在这边加了一个操作,如果有句柄的话,就显示图片,如果没有句柄的话,就不要显示图片。OnRender之后才有句柄的话,会不会意味着我的那个操作是完全有问题的,我的显示图片的窗口句柄用的是之前的句柄,而不是重绘界面之后的句柄,那么其实我的图片也没有显示在最新的那个界面上,而是显示在了前一刻的那个界面上?
    要怎么才能在界面出来的时候同时就把要显示的图片显示上去呢?
  5. 不知道在wpf中使用这个控件是不是一个正确的选择,一般都是怎么结合起来编程的呢,目前关于这个方面感觉前方迷雾重重。
  6. 事件和OnRender的顺序是怎样的?这个问题应该还是比较基础的,要了解一下。
    论坛上应该会有联合编程的例子,找来看看吧。

Halcon C# 联合编程问题(三)的更多相关文章

  1. WCF编程系列(三)地址与绑定

    WCF编程系列(三)地址与绑定   地址     地址指定了接收消息的位置,WCF中地址以统一资源标识符(URI)的形式指定.URI由通讯协议和位置路径两部分组成,如示例一中的: http://loc ...

  2. c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

    转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html 首先必须知道联合编程需要知道的一些命令解释: mcc 的作用是将 . ...

  3. Javascript模块化编程(三):require.js的用法

    Javascript模块化编程(三):require.js的用法 原文地址:http://www.ruanyifeng.com/blog/2012/11/require_js.html 作者: 阮一峰 ...

  4. 5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task

    5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...

  5. 【转】apue《UNIX环境高级编程第三版》第一章答案详解

    原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...

  6. 转:JavaScript函数式编程(三)

    转:JavaScript函数式编程(三) 作者: Stark伟 这是完结篇了. 在第二篇文章里,我们介绍了 Maybe.Either.IO 等几种常见的 Functor,或许很多看完第二篇文章的人都会 ...

  7. 【unix网络编程第三版】阅读笔记(五):I/O复用:select和poll函数

    本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现 1. I/O复用技术 I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程.I/O ...

  8. 【unix网络编程第三版】阅读笔记(三):基本套接字编程

    unp第三章主要介绍了基本套接字编程函数.主要有:socket(),bind(),connect(),accept(),listen()等. 本博文也直接进入正题,对这几个函数进行剖析和讲解. 1. ...

  9. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...

随机推荐

  1. ubuntu系统设置开机后使用使用终端运行应用程序

    1.在菜单栏输入start,点击startup application进入 2. 添加开机启动程序 3.因为要用终端启动一个应用程序,所以command输入:gnome-terminal -- 程序执 ...

  2. Linux之vim、压缩与解压缩

    终有一种方法适合你!

  3. Git同步更新操作GitHub和码云仓库上面的代码

    一.前言 问题: 小编在生活中,一般都是将代码保存到github上,但由于国内的码云仓库确实速度比github快很多,用起来也很方便,于是后来就慢慢转码云了,当然小编在github上的代码也不想放弃更 ...

  4. OAuth2.0 RFC 6749 中文

    英文原版:https://tools.ietf.org/html/rfc6749 转自:https://github.com/jeansfish/RFC6749.zh-cn 一.简介 在传统的客户端- ...

  5. [C++] 重载运算符与类型转换(1)

      1.形式:返回值 operator符号(参数列表){}   2.不能被重载的运算符::: 作用域运算符  .*   . 成员访问运算符   ?: 条件运算符:某些运算符(逗号,,取地址&, ...

  6. spring与logstash整合,并将数据传输到Elasticsearch

    logstash是一个开源的数据收集引擎,支持各种输入选择,能够同时从多个来源采集数据,将数据转发到想存储的“库”中,例如,可以转发存储到Elasticsearch,也可以转发到kafka等消息中间件 ...

  7. Spring boot缓存初体验

    spring boot缓存初体验 1.项目搭建 使用MySQL作为数据库,spring boot集成mybatis来操作数据库,所以在使用springboot的cache组件时,需要先搭建一个简单的s ...

  8. C++中类型强制转换

    C++中强制类型转换有四种: 1.static_cast 格式:static_cast<Type>(Value); --用于基本类型间的转换,但不能用于基本类型指针间的转换: int i ...

  9. Python2与Python3的map()

    1. map()函数 Python2中,map(func, seq1[,seq2[...[,seqn)将func作用于seq*的每个序列的索引相同的元素,并最终生成一个[func(seq1[0], s ...

  10. Spring 梳理-跨重定向请求传递数据-Flash

    Spring MVC Flash Attribute 的讲解与使用示例 1. Spring MVC 3.1版本加了一个很有用的特性,Flash属性,它能解决一个长久以来缺少解决的问题,一个POST/R ...