如何拖动图片框中的形状?

时间:2009-10-18 08:44:27

标签: c# gdi+ system.drawing

我有一个项目,在那些我从某个层绘制一些形状。例如,我在圆形图层中有两个圆,在矩形图层中有三个矩形,依此类推。我使用调用Layer.Draw绘制结果,并使用Graphics对象填充图层结果。 我可以在图片框中选择一个形状并在图层上指定它。我可以拖动它重绘它的图层,并重新使用graphics.it工作!但太慢!!

我如何优化这个?

3 个答案:

答案 0 :(得分:1)

在旧的解决方案中,我将形状绘制到layer.image中,并在Paint事件中使用e.Graphic。 我通过将图形对象传递到图层并使用它绘制形状来解决此问题。我的计划工作非常好!

答案 1 :(得分:0)

曾几何时,我有一个项目,其中绘制图像的速度是必要的。我使用unlock方法直接访问位(http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.unlockbits.aspx)。但是这种方法非常不安全且也很复杂,所以你应该尽可能避免这种情况。

尝试优化您的计划并删除不必要的抽奖。对GUI的主要绘制非常慢,因此请尽量不要永久更新图片框,但仅限于必要时。

答案 2 :(得分:0)

我认为这篇文章中包含您正在寻找的代码:Flicker free drawing using GDI+ and C#