2009-02-27 99 views
4

我試圖將一個圖形對象的內容複製到另一個圖形對象,但唯一能找到的是基於使用GDI32.DLL,我寧願儘可能避免使用它。如何將一個圖形對象複製到另一個

有誰知道如果使用託管代碼可以這麼做嗎?我不介意如果答案是在C#或VB.Net。

這是我目前有:

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 

回答

5

嚴格地說,這是不可能的一個圖形的內容,目的是使用任何地方的方法,因爲一個圖形對象不包含任何複製。

爲什麼不使用DrawToBitmap方法在位圖上繪製控件?

Dim srcBmp As New Bitmap(pnl.Width, pnl.Height) 
Dim clip As New Rectangle(New Point(0, 0), pnl.Size) 
pnl.DrawToBitmap(srcBmp, clip) 
+0

我不知道DrawToBitmap方法,謝謝。 – Pondidum 2009-02-27 23:54:04

相關問題