WEB开发网
开发学院软件开发C语言 C#中使用单个对象的方法实现Undo/Redo 阅读

C#中使用单个对象的方法实现Undo/Redo

 2009-03-19 08:21:07 来源:WEB开发网   
核心提示: ◆然后基于动作的类型,利用ChangeRepresentationObject属性完成重做操作,C#中使用单个对象的方法实现Undo/Redo(3),在InsertObjectforUndoRedo操作中,你只要把数据对象插入Undo栈并清空Redo栈中,我们需要保存高度、宽度和边距,为了

◆然后基于动作的类型,利用ChangeRepresentationObject属性完成重做操作。

在InsertObjectforUndoRedo操作中,你只要把数据对象插入Undo栈并清空Redo栈中。

步骤6

然后,在完成每次操作前,调用InsertObjectforUndoRedo方法以对所有操作提供Undo/Redo支持。在用户界面上点击Undo时,只需调用UndoRedo类的Undo方法,而在用户界面上点击Redo时,只需调用UndoRedo类的redo方法。

示例应用程序说明

这个示范WPF绘制应用程序用来作为结合Undo/Redo操作的案例。该WPF应用程序示例支持四种操作:插入对象、删除对象、移动对象和调整对象的尺寸,它还有两种类型的几何对象:矩形和多边形。它使用画布作为包含这些几何对象的容器。

现在,在此系列文章中,我们可以看到如何让这四个操作支持Undo/Redo。在第一部分,使用单个对象表示变化的方法实现。在第二部分,使用命令模式实现而在第三部分,使用备忘录模式实现。

使用单个对象表示变化的方法实现示范应用程序的Undo/Redo

利用单个对象表示变化的方法对示范应用程序Undo/Redo的实现将在以下步骤中讨论

步骤1

我们将识别出那些需要支持Undo/Redo的操作。这里有四个操作支持Undo/Redo。它们是::插入对象、删除对象、移动对象和调整对象的尺寸。我们将对矩形和椭圆支持Undo/Redo,这里的容器是画布。

步骤2

现在我们将识别出那些进一步处理Undo/Redo所需的保存的参数。几何对象移动时其边距改变,因此要支持对象移动的Undo/Redo,要保存边距。当对象改变尺寸时,它的高度、宽度和边距改变。因此为支持对象尺寸调整的Undo/Redo,我们需要保存高度、宽度和边距。为了支持插入和删除的Undo/Redo操作,我们需要保存几何对象的引用。

上一页  1 2 3 4  下一页

Tags:使用 单个 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接