bool mark = true; private void btnOpen_Click(object sender, EventArgs e) { mark = true;
//動態創建WebBrowser控件 WebBrowser webBrowser = new WebBrowser(); webBrowser.Navigate(textBox1.Text); webBrowser.ScrollBarsEnabled = false; //禁用滾動條 webBrowser.ScriptErrorsSuppressed = false; //禁用腳本錯誤 webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted); }
void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (!mark) return; //可能頁面內含有多次請求,只執行一次 WebBrowser webBrowser = (WebBrowser)sender;
// 確認網頁已經加載完畢 while (webBrowser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); } // 網頁加載完畢才保存 if (webBrowser.ReadyState == WebBrowserReadyState.Complete) { // 獲取網頁高度和寬度,也可以自己設置 int width = webBrowser.Document.Body.ScrollRectangle.Width < 1024 ? 1024 : webBrowser.Document.Body.ScrollRectangle.Width; int height = webBrowser.Document.Body.ScrollRectangle.Height < 768 ? 768 : webBrowser.Document.Body.ScrollRectangle.Height; // 調節webBrowser的高度和寬度 -- (只用動態創建的WebBrowser才可以修改其大小,不知道為什么) webBrowser.Height = height; webBrowser.Width = width; //滾動整個網頁 設置此元素的上邊緣或下邊緣與此文檔窗口對齊為止---這樣可以截取網頁滾動條中的內容 webBrowser.Document.Body.ScrollIntoView(true); Bitmap bitmap = new Bitmap(width, height); // 創建高度和寬度與網頁相同的圖片 Rectangle rectangle = new Rectangle(0, 0, width, height); // 繪圖區域 webBrowser.DrawToBitmap(bitmap, rectangle); // 截圖 // 保存圖片 bitmap.Save(@"D:/" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".jpg"); pictureBox1.Image = bitmap as Image; } mark = false; }
