将WPF中的图像覆盖在Winforms控件上
本文关键字:Winforms 控件 覆盖 图像 WPF | 更新日期: 2023-09-27 18:28:37
我希望能够覆盖一个图像,该图像应该在它所属的面板内可移动且相当大,并且在WPF中,在WinForms控件的顶部。我已经很容易地在WPF中实现了可移动/可缩放的运行时图像。我还决定将WinForms控件导入到WPF控件中,尝试进行覆盖,然而,它似乎只显示WinForms控件,顶部没有覆盖图像(不透明度为50%)。我正在使用的系统的其余部分是WinForms,我试图覆盖的WinForms控件是一个相当大的控件,我宁愿不必将其转换为WPF来完成这项任务。有人知道做这件事的最佳方法吗?基本上,图像本身与控件相关,用户将图像的部分与控件的部分对齐(因此调整大小和移动)。感谢您抽出时间
使用RenderTargetBitmap将(隐藏的)WPF元素渲染为图像,并使用GDI在windows窗体内容的顶部绘制图像。
最后,为了做到这一点,我使用了一个类似于Gusdor提到的建议。我没有使用DrawToBitmap函数,而是将希望从控件中看到的内容渲染到元文件中,然后在WPF控件中渲染该元文件。这一切都很好地解决了这个不寻常的问题。感谢所有帮助
要做到这一点,您需要在ElementHost控件内托管的WPF用户控件(带有覆盖的图像)内托管windows表单内容。