【发布时间】:2010-09-10 06:28:53
【问题描述】:
有人可以分享代码以截取网络浏览器控件并将其保存在预定路径中。
我正在使用 VS 2008 .Net 3.5。
【问题讨论】:
有人可以分享代码以截取网络浏览器控件并将其保存在预定路径中。
我正在使用 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");
}
}
【讨论】: