Estoy tratando de copiar el contenido de un objeto graphics para otro, pero el único que he sido capaz de encontrar se basa en el uso de GDI32.DLL, que prefiero evitar el uso de, si es posible.

¿Alguien sabe cómo/si esto es posible mediante el uso de código administrado? No me importa si las respuestas son en C# o VB.Net.

Aquí es lo que tengo actualmente:

Private Sub CopyGraphics()
    Dim srcPic As Graphics = pnl.CreateGraphics

    Dim srcBmp As New Bitmap(pnl.Width, pnl.Height, srcPic)
    Dim srcMem As Graphics = Graphics.FromImage(srcBmp)

    Dim HDC1 As IntPtr = srcPic.GetHdc
    Dim HDC2 As IntPtr = srcMem.GetHdc

    BitBlt(HDC2, 0, 0, pnl.Width, pnl.Height, HDC1, 0, 0, 13369376)

    pnlDraw.BackgroundImage = srcBmp

    'Clean Up code omitted...
End Sub

OriginalEl autor Pondidum | 2009-02-27

1 Comentario

  1. 5

    Estrictamente hablando, no es posible copiar el contenido de un objeto de Gráficos en cualquier lugar utilizando cualquier método, debido a que un objeto Graphics no contiene nada.

    ¿Por qué no utilizar el DrawToBitmap método para dibujar el control sobre el mapa de bits?

    Dim srcBmp As New Bitmap(pnl.Width, pnl.Height)
    Dim clip As New Rectangle(New Point(0, 0), pnl.Size)
    pnl.DrawToBitmap(srcBmp, clip)
    Yo no sabía acerca de la DrawToBitmap método, gracias.

    OriginalEl autor Guffa

Dejar respuesta

Please enter your comment!
Please enter your name here