c# - 截取 WebBrowser 控件的屏幕截图

标签 c# winforms

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

我正在使用 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/

相关文章:

c# - C#中如何访问不同域的文件

c# - 如何修复小数分隔符有问题的应用程序

c# - ListView.RetrieveVirtualItem 事件到底是什么 - C#

c# - Tesseract Init() 方法 C3

c# - swift 中对内部数组的本地引用

C# 使用 webbrowser 文档文本,文档保持为空

c# - 用户控件在设计时作为容器

c# - 更改设计器时控件的属性未正确更新

.net - 无需按 ALT 键即可执行加速器(助记键)

c# - Properties.Settings 是否被缓存?