我试图将一个图形对象的内容复制到另一个图形对象,但我唯一能找到的是基于使用 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

最佳答案

严格来说,不可能使用任何方法在任何地方复制 Graphics 对象的内容,因为 Graphics 对象不包含任何内容。

为什么不使用 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)

关于c# - 如何将一个图形对象复制到另一个图形对象中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/597037/

10-11 04:21