我想從webBrowser
控件的輸出創建圖像。以下是我所嘗試過的。並且有些達到了我想要的,但是問題是圖像不是全高,它在一定高度之後得到修整。VisualTreeHelper.GetDrawing不返回完整圖像WPF
在圖片中你可以看到有4行,但圖像是2 n半行。請指導。
HTML 1-4在webBrowser
中,而空格1-3是從下面的代碼創建的圖像。
這裏是代碼:
private void WebBrowser1_LoadCompleted(object sender, NavigationEventArgs e)
{
var wb = (WebBrowser)sender;
var htmlDoc = wb.Document as mshtml.HTMLDocument;
if (htmlDoc == null || htmlDoc.body == null) return;
var body = (mshtml.IHTMLElement2)htmlDoc.body;
wb.Height = body.scrollHeight;
wb.Width = body.scrollWidth;
var imgScreen = new Image
{
Width = body.scrollWidth,
Height = body.scrollHeight,
Source = new DrawingImage(VisualTreeHelper.GetDrawing(wb))
};
// Add Image to the UI
StackPanel1.Children.Add(imgScreen);
}
也試過下面的代碼相同的結果:
DrawingVisual vis = new DrawingVisual();
DrawingContext cont = vis.RenderOpen();
cont.DrawDrawing(VisualTreeHelper.GetDrawing(wb));
cont.Close();
RenderTargetBitmap rtb = new RenderTargetBitmap(body.scrollWidth, body.scrollHeight, 96d, 96d, PixelFormats.Default);
rtb.Render(vis);
imgScreen1.Source = rtb;
你爲什麼不嘗試http://stackoverflow.com/questions/891345/get-a -screenshot-of-specific-application? –
@AkashKava非常有趣,感謝4鏈接我會看看它 – ADi