【发布时间】:2015-09-14 22:30:13
【问题描述】:
我是一个老的 delphi 程序员,我习惯于创建对象并一直使用它们来有效地使用内存。但是在 c# 中(可能是我见过的所有教程),你每次都在用new 创建东西(感谢垃圾收集器!!,让我来编码)..
无论如何,我正在尝试创建一个包含大量绘图的设计软件。
我的问题是:我必须创建一个图形对象,还是使用protected override void OnPaint(PaintEventArgs e) e.Graphics 每个绘画事件.. 因为当我创建一个图形对象然后调整我绘制的控件的大小时,我创建的图形对象,有裁剪问题,只绘制旧的矩形区域..
谢谢
【问题讨论】:
-
始终使用提供的
Paint方法。 CreateGraphics 是通往灾难的必经之路。 -
好的,感谢您的快速回答。我保留了一个缓冲区位图来绘制它,如果发生调整大小或绘制额外的东西等事情;我正在使用从中创建的图形对象进行重绘,然后使用 graphics.DrawImage(bitmapB, 0, 0); 将其刷新到控制组件的表面。现在我将重新设计我的管道并使用 OnPaint 事件的 e.graphic 对象来刷新......再次感谢。你真的很有帮助
标签: c# winforms gdi+ clipping onpaint