C# 呈现到jpg/png WPF控件和包含WinForms控件的WindowsFormHost

C# 呈现到jpg/png WPF控件和包含WinForms控件的WindowsFormHost,c#,.net,wpf,winforms,C#,.net,Wpf,Winforms,我有一个包含WindowsFormsHost控件的WPF表单 有意添加此WindowsFormsHost控件是为了同时添加ActiveX/WinForms控件 最后,我必须为包含WindowsFormsHost控件的窗体拍照,问题出在这里。 我发现了如何将wpf()保存为jpg,将winforms保存为jpg() 来自WPF: formGrid是WPF表单中的基本网格 RenderTargetBitmap rtb = new RenderTargetBitmap((int)formGrid.Ac

我有一个包含WindowsFormsHost控件的WPF表单

有意添加此WindowsFormsHost控件是为了同时添加ActiveX/WinForms控件

最后,我必须为包含WindowsFormsHost控件的窗体拍照,问题出在这里。
我发现了如何将wpf()保存为jpg,将winforms保存为jpg()

来自WPF:
formGrid是WPF表单中的基本网格

RenderTargetBitmap rtb = new RenderTargetBitmap((int)formGrid.ActualWidth, (int)formGrid.ActualHeight, 96, 96, PixelFormats.Pbgra32);
rtb.Render(formGrid);

JpegBitmapEncoder jpg = new JpegBitmapEncoder();
jpg.Frames.Add(BitmapFrame.Create(rtb));

using (Stream stm = File.Create(@"c:\testwpf.jpg"))
{
     jpg.Save(stm);
}
来自WinForms:
formhost是WindowsFormHost控件

using (var bmp = new System.Drawing.Bitmap((int)formhost.Width, (int)formhost.Height))
{
    formhost.Panel.DrawToBitmap(bmp, new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height));
    bmp.Save(@"c:\testwinform.jpg") 
}
我想要的是混合/合并,如果可能的话,将两个渲染结果合并到一个图像中


PD:我试图从位图创建位图源并将其添加到JpegBitmapEncoder,但没有成功结果。

“我没有成功结果”,这是什么意思?RenderTargetBitmap是否不显示WindowsFormsHost及其子项?@Clemens确切地说,RenderTargetBitmap仅显示WPF控件,而WindowsFormsHost控件不在图片中。我仅使用DrawToBitmap函数从WindowsFormsHost获取数据。