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