有人可以分享代码以截取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/