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