Vb.net 从e.ClipRectangle在OnPaint中绘制

Vb.net 从e.ClipRectangle在OnPaint中绘制,vb.net,winforms,graphics,Vb.net,Winforms,Graphics,我是故意打电话来的 Me.Invalidate(MyDesiredRepaintRectangle) 在我的用户控件中 在OnPaint事件中,我想从缓冲区位图绘制到e.Graphics: Protected Overrides Sub OnPaint(e As PaintEventArgs) If Not _Buffer Is Nothing Then e.Graphics.DrawImage(_Buffer, e.ClipRectangle) End If End Sub

我是故意打电话来的

Me.Invalidate(MyDesiredRepaintRectangle) 
在我的用户控件中

在OnPaint事件中,我想从缓冲区位图绘制到e.Graphics:

Protected Overrides Sub OnPaint(e As PaintEventArgs)
  If Not _Buffer Is Nothing Then
    e.Graphics.DrawImage(_Buffer, e.ClipRectangle)
  End If
End Sub
但我在这条线上做错了什么

e.Graphics.DrawImage(_Buffer, e.ClipRectangle)
。。。我想。目前,整个_缓冲区是以拉伸的方式绘制的,因此它适合于e.ClipRectangle

_缓冲区的大小与usercontrol相同

我不确定如何在没有任何拉伸的情况下,仅在e.图形上绘制所需部分

谁能告诉我我做错了什么吗?

明白了:

    If Not _Buffer Is Nothing Then
        e.Graphics.DrawImage(_Buffer, e.ClipRectangle.X, e.ClipRectangle.Y, e.ClipRectangle, GraphicsUnit.Pixel)
    End If