WebBrowser.DrawtoBitmap()一致地为少数站点生成空白图像

我一直在我的asp.net页面中使用WebBrowser.DrawtoBitmap()在单独的STA线程中运行,以将网页捕获为图像。 但我发现我一直在为少数网站拍摄空白图像。 我知道这种方法不是“正式”支持的,但如果有人可以为我提供任何理由或解决这些空白图像问题,那就太好了。

DrawToBitmap有局限性,并不总是按预期工作。 尝试使用原生GDI +

这是一个例子

这个问题可以通过将焦点放在控件上来解决,因此它可以正确绘制。

这是一个选项,但控件必须是可见的: WebBrowser.DrawToBitmap()或其他方法?

据我所知,问题是当你点击webbrowsercontrol时它已经修复了。 因此,这个程序化应该解决问题:)

我没有测试过这个,但理论上我认为可以在asp.net应用程序中启动一个窗体。 引用system.windows.forms和绘图,然后在单独的线程上使用application.run。 注意:我在手机上,所以我无法测试它,但它可能确实有效。

你没有用Flash点击页面?

我必须这样做,以使我的WebBrowser控件工作:

 using System; using System.Windows.Forms; public class WebBrowserEx : WebBrowser { public WebBrowserEx() { } protected override void WndProc(ref Message m) { switch (m.Msg) { case 0x021: case 0x201: case 0x204: case 0x207: base.DefWndProc(ref m); return; } base.WndProc(ref m); } } 

我真的不知道我在做什么,我只是在某个地方找到了它,它是为了启用Flash。 但是我觉得我从来没有遇到太多问题。

我用它做截图。 我在一个单独的STA线程上运行它(作为一个Windows服务 – 没有任何可见的)。