很早之前就遇到过,在wpf中嵌入了一个winform的picturebox后,picturebox并不受到grid的格式约束,而是浮在wpf上面。
后来找到原因因为微软是先渲染的wpf再渲染的winform,底层问题。
最近做了一个识别,需要在连接摄像机播放视频的picturebox上画出红框标记出识别到的物品,最后发现可行的有一种。
封装一个winfrom的自定义控件,放入一个picturebox和四个label,四个label分别画出红框的上下左右四条线,在后台更改四个label的location,高,宽就可以了。
但是还有个问题就是后台不停的传来框的位置变化,需要实时的对框进行重绘,解决方法为使用委托
===========更新=========
按照以上做了以后,还是会出现一个神奇的问题,那就是视频显示不完整,可能只截取了视频左上角的一部分来显示,剩下的部分会被剪切掉看不到,但是通过对比可以发现。
试了修改宽和高的方法,依然不生效,后来想到winform控件都自带一个handle,于是把自定义的winform控件中picture撤掉,直接使用该自定义控件的handle,后经测试没问题