-1

我想在我的应用程序中提供撤消/重做功能。

例如,考虑这一系列调用:

gr.Drawrectangle(pen, p1, p2);
gr.FillEllipse(brush, p1, dx, dy);

我想将调用存储在某种列表中并能够撤消它们。有什么好方法可以做到这一点?

4

2 回答 2

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));
于 2012-10-26T07:32:09.540 回答
2

您可以使用反射来获取方法列表:http: //msdn.microsoft.com/en-us/library/4d848zkb.aspx

但是我认为对于“撤消”按钮,您应该使用某种缓存来保留以前的位图。可以说最后 10 个动作(位图)可以放在内存中,而下一个动作可以放在临时文件中。

于 2012-10-26T07:36:19.923 回答