我想在我的应用程序中提供撤消/重做功能。
举个例子,考虑这一系列的调用:
gr.Drawrectangle(pen, p1, p2);
gr.FillEllipse(brush, p1, dx, dy);
我想将调用存储在某种列表中并能够撤消它们。有什么好办法呢?
答案 0 :(得分:3)
我完全不明白你想要什么,但可以创建一个动作或功能列表。
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));
答案 1 :(得分:2)
您可以使用Reflection获取方法列表:http://msdn.microsoft.com/en-us/library/4d848zkb.aspx
但是对于'撤消'按钮我认为,你应该使用某种缓存来保留以前的位图。让我们说最后10个移动(位图)可以放在内存中,然后移动到临时文件中。