我有一个项目,在这些项目中我从某个图层绘制了一些形状。例如,我在圆形图层中有两个圆圈,在矩形图层中有三个矩形,依此类推。我通过调用 Layer.Draw 绘制结果,并使用 Graphics 对象对图层结果进行标记。我可以在图片框中选择一个形状并在图层上指定它。我可以用重绘它的图层来拖动它,然后用图形重新标记它。它有效!但是太慢了!!
我该如何优化呢?
我有一个项目,在这些项目中我从某个图层绘制了一些形状。例如,我在圆形图层中有两个圆圈,在矩形图层中有三个矩形,依此类推。我通过调用 Layer.Draw 绘制结果,并使用 Graphics 对象对图层结果进行标记。我可以在图片框中选择一个形状并在图层上指定它。我可以用重绘它的图层来拖动它,然后用图形重新标记它。它有效!但是太慢了!!
我该如何优化呢?
在旧解决方案中,我将形状绘制到 layer.image 中,并在 Paint 事件中将它们与 e.Graphic 结合起来。我通过将图形对象传递到图层并用它绘制形状来解决这个问题。我的程序工作得很好!
曾几何时,我有一个项目需要绘制图像时的速度。我使用解锁方法直接访问位(http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.unlockbits.aspx)。但是这种方法非常不安全而且也很复杂,所以你应该尽可能避免这种情况。
只需尝试优化您的程序并删除不必要的平局即可。对 GUI 的主要绘制非常慢,因此尽量不要永久更新图片框,而仅在必要时更新。