在 System.Windows.Forms.Control 的继承者中重写 OnPaint 或 OnPaintBackground 方法时,一个参数始终是 System.Windows.Forms.PaintEventArgs 对象。部分对象结构:
- PaintEventArgs
- ClipRectangle (System.Drawing.Rectangle)
- 图形(System.Drawing.Graphics)
- 剪辑(System.Drawing.Region)
- ClipBounds (System.Drawing.RectangleF)
- VisibleClipBounds (System.Drawing.RectangleF)
Graphics.Clip似乎是适用像素的 1 位图,以影响后续绘制操作。
MSDN:“获取或设置限制此 Graphics 的绘图区域的区域。”
Graphics.ClipBounds是一个只读矩形,似乎是完全包含剪辑区域的最小矩形。
MSDN:“获取限制此图形的剪切区域的 RectangleF 结构。”
Graphics.VisibleClipBounds似乎是一个更“智能”的剪辑,虽然我不明白它是如何运作的。
MSDN:“获取此图形的可见剪切区域的边界矩形。”
ClipRectangle似乎在所有情况下都复制了 Graphics.ClipBounds 属性。
MSDN:“获取要在其中绘制的矩形。”
有人可以回答主要问题并可能阐明所有各种边界对象的用途吗?
编辑:根据 Dan-o 的回答添加了 MSDN 的描述。