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

我正在使用VS 2008 .Net 3.5。

最佳答案

您可以使用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");
    }
}

关于c# - 拍摄WebBrowser控件的屏幕截图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3682635/

10-09 13:17