使用图像集撤消更改

时间:2010-08-13 09:48:16

标签: c#

我正在尝试通过在绘制之前将图像保存到数组或其他内容来为图片框创建撤消功能。我尝试使用List,但我总是得到相同的图像,Image List的大小对于我的海豚而言是小的。保存撤消数据的最佳做法是什么?如何在每次绘制之前将图像存储到内存中?谢谢!

2 个答案:

答案 0 :(得分:2)

每次都必须克隆图像内容。我想你总是将图像的引用添加到列表中。

如果您想要正确完成撤消功能,请查看Command Pattern

另一种方法是在操作后计算原始图像和图像的差异,然后存储差值以节省内存。

答案 1 :(得分:1)

许多涂料将在同一图像上发生。只要需要重新绘制部分控件,Windows就会触发Paint事件。就像你在PB上拖动另一个窗口一样。或者最小化并恢复表格。

换句话说,Paint不会告诉您图像已更改。您需要从PictureBox派生自己的类并覆盖Image属性。更改图像时将调用setter。