2010-09-10 18 views

Respuesta

3

Puede usar Control.DrawToBitmap(), aunque esté oculto de Intellisense en VisualStudio. WebBrowser todavía hereda del Control de clase base, por lo que este método existe. Pero lo que hice fue crear un MenuStrip con un MenuItem que usé para probar esto (esto es básicamente un evento de clic estándar), y en su lugar creé un objeto de gráficos, y copié una porción de la pantalla usando los cordinates correctos. Lo único que tendrá que ajustar realmente es el nombre del control WebBrowser y la línea que realmente guarda la imagen.

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"); 
    } 
} 
+0

Esto es exactamente lo que necesito ... gracias – Muse

+0

Trabaja como un amuleto. ¡Gracias! – molbalga

Cuestiones relacionadas