我正在尝试在 Silverlight 5 中的 Canvas 上实现 Undo-Redo 操作。为此,我想在每次操作后将画布保存到堆栈中,并且在撤消或重做操作时,我想将现有画布替换为堆。
面临的问题是,当我将当前画布与临时变量等同时,不会制作新副本,但两个画布变量都引用同一个画布,即在一个画布上所做的更改会反映在另一个画布上。当我更改当前画布然后撤消以替换为临时画布(在执行操作之前等同于当前画布)时,这会产生问题,临时画布也会获得在前一个画布(即当前画布)上所做的更改.
如何在画布上制作单独的副本?请帮忙。
我正在初始化如下:
Canvas temp = new Canvas();
temp = currentCanvas;