我想在我的应用程序中提供撤消/重做功能。
例如,考虑这一系列调用:
gr.Drawrectangle(pen, p1, p2);
gr.FillEllipse(brush, p1, dx, dy);
我想将调用存储在某种列表中并能够撤消它们。有什么好方法可以做到这一点?
我不完全了解您想要什么,但可以创建一个操作或功能列表。
List<Action<Graphics>> actions = new List<Action<Graphics>>();
actions.Add(gr => gr.Drawrectangle(pen, p1, p2));
actions.Add(gr => gr.FillEllipse(brush, p, x, y));
您可以使用反射来获取方法列表:http: //msdn.microsoft.com/en-us/library/4d848zkb.aspx
但是我认为对于“撤消”按钮,您应该使用某种缓存来保留以前的位图。可以说最后 10 个动作(位图)可以放在内存中,而下一个动作可以放在临时文件中。