关于Halcon自带的HWindowControl在WPF应用中遮挡其他WPF元素的解决办法

这几天公司做项目,需要用到WPF和Halcon结合使用,因为以前都是使用C++/C# Winfform,所以一直没有什么问题。但是到了WPF发现不一样的,发现HWindowControl会遮挡其他的WPF元素。其原因我想大家都知道,由于Winform控件采用的是GDI方式绘制,而WPF是采用DirectX绘制,GDI总是后绘制,导致覆盖WPF元素。结果就是如下图,很丑陋。

当然中间也试过用普通控件做显示,普通控件做显示有需要知道句柄,WPF中哪有句柄呀,此方法也做罢。也试过将HObject转为Bitmap用WPF的Image控件显示,但是无奈C#处理图片的速度非常慢,不适合生产使用。也做罢。难道就没有其他好的办法了吗?

关于Halcon自带的HWindowControl在WPF应用中遮挡其他WPF元素的解决办法

可是这该如何解决呢,我查了一下,网上很多都建议使用WinformHost元素包一下,但是我并不建议如此。这样也非常麻烦,后来经过我司领导提醒说Halcon13带有WPF控件,于是就去看了一下,果然很爽。看来halcon官网还是积极的体察到了民间疾苦。效果如下

关于Halcon自带的HWindowControl在WPF应用中遮挡其他WPF元素的解决办法

并且Halcon10升级到halcon13也不是很困难的事情,所以非常建议小伙伴们升级到halcon13和谐版做WPF项目。写这篇文章只是记录一下,防止忘记。