获取WebBrowser控件的屏幕截图

时间:2010-09-10 06:28:54

标签: c# winforms

有人可以分享代码以获取网络浏览器控件的屏幕截图并将其保存在预定的路径中。

我正在使用VS 2008 .Net 3.5。

2 个答案:

答案 0 :(得分:4)

您可以使用Control.DrawToBitmap(),即使它在VisualStudio中的Intellisense中隐藏了。 WebBrowser仍然继承自基类Control,因此该方法确实存在。但我所做的是使用我用来测试它的MenuItem创建一个MenuStrip(这基本上只是一个标准的点击事件),而是创建了一个图形对象,并使用正确的坐标复制了一部分屏幕。您需要实际调整的唯一事项是WebBrowser控件的名称,以及实际保存图像的行。

private void copyToolStripMenuItem_Click(object sender, EventArgs e) {
    int width, height;
    width   = webBrowser1.ClientRectangle.Width;
    height  = webBrowser1.ClientRectangle.Height;
    using (Bitmap image = new Bitmap(width, height)) {
        using (Graphics graphics = Graphics.FromImage(image)) {
            Point p, upperLeftSource, upperLeftDestination;
            p                       = new Point(0, 0);
            upperLeftSource         = webBrowser1.PointToScreen(p);
            upperLeftDestination    = new Point(0, 0);
            Size blockRegionSize = webBrowser1.ClientRectangle.Size;
            graphics.CopyFromScreen(upperLeftSource, upperLeftDestination, blockRegionSize);
        }
        image.Save("C:\\Test.bmp");
    }
}

答案 1 :(得分:2)

这是一个article来说明这一点。还有another。并even more