通过Winforms控件在WPF中覆盖图像

时间:2013-08-21 09:14:06

标签: c# wpf winforms

我希望能够在一个WinForms控件的顶部覆盖一个图像,该图像应该在它所属的面板中可移动和相当大,并且在WPF中。 我已经很容易在WPF中实现运行时图像的可移动/大小。我还决定将WinForms控件导入WPF控件以尝试执行叠加,但是,它似乎只显示WinForms控件,顶部没有覆盖图像(50%不透明度)。 我正在使用的系统的其余部分是WinForms,我试图覆盖的WinForms控件是一个非常大的控件,我宁愿不必将它转换为WPF来实现这个任务。 任何人都有最好的方法去做这个吗?基本上图像本身与控件相关,并且用户将对齐部分图像(因此调整大小并移动)与控件的部分。 谢谢你的时间

3 个答案:

答案 0 :(得分:1)

使用RenderTargetBitmap将(隐藏的)WPF元素渲染为图像,并使用GDI在Windows窗体内容上绘制图像。

答案 1 :(得分:0)

最后,为了做到这一点,我使用了类似于古斯多提到的建议。我没有使用DrawToBitmap函数,而是将从控件中看到的内容呈现给元文件,然后在WPF控件中呈现元文件。这一切运作良好,解决了这个不寻常的问题。感谢所有帮助

答案 2 :(得分:-1)

为此,您需要在host windows forms content控件内托管的WPF用户控件(带有覆盖图像)内ElementHost