!!用webbrowser控件对网页截图是空白的~急!!
这两天要对一个网页进行后台截图,相当于网页快照,后台保存图片即可。
目前想到的方法是添加一个webbrowser控件,然后对控件抓图进行保存。
新建的wpf工程默认界面是mainwindow,这个上边用toolbox添加的webbrowser是从windows.control中继承来的,没有documentcompletted事件(想通过这个事件判断网页是否加载完毕);
所以新建了一个form1类,在form界面上用toolbox添加了webbrowser控件,这次是从weindows.form中继承来的。有上述事件。
用了以下两种类似的方法截图,不知道为什么截图
保存的图片都是空白的,没有网页内容,请教!
1 通过以下函数进行截图(这个貌似只能
在mainwindow里用,form1里不知道对其第一个参数设什么)
private void SaveToImage(FrameworkElement p_FrameworkElement, string p_FileName)
{
System.IO.FileStream fs = new System.IO.FileStream(p_FileName, System.IO.FileMode.Create);
RenderTargetBitmap bmp = new RenderTargetBitmap((int)p_FrameworkElement.ActualWidth, (int)p_FrameworkElement.ActualHeight, 96.0, 96.0, PixelFormats.Pbgra32);
bmp.Render(p_FrameworkElement);
BitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
encoder.Save(fs);
fs.Close();
fs.Dispose();
2 还尝试了在
form1代码中用如下代码截图:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
System.Drawing.Size mySize = webBrowser1.Document.Window.Size;
Bitmap myPic = new Bitmap(mySize.Width, mySize.Height);
Rectangle myRec = new Rectangle(0, 0, mySize.Width, mySize.Height);
webBrowser1.Size = mySize;
webBrowser1.DrawToBitmap(myPic, myRec);
myPic.Save("E:\\aaaaaa.jpg");
System.Windows.Forms.MessageBox.Show("Ok");
}
新手,分不多,请大家多多帮忙
如果有不用webbrowser控件就可以后台截图的方法,也请告诉我,谢谢
------解决方案------