积极答复者
WPF 撤销 恢复

问题
答案
-
Command中的Undo和Redo只针对TextBox 和RichTextBox,因为只有他们有内部一个集合来存储你所做的动作。 InkCanvas是没有的。
如果要实现,你就必须自己创建一个集合来去存储你在InkCanvas上做的所有动作,然后按照队列顺序撤销和重做。
撤销的时候,你可以从 InkCanvas的Strokes集合中移去最后一个添加的Stroke,重画你就可以把刚才撤销的Stroke保存以后再加入回去。
微软官方提供了一个例子,实现了InkCanvas的Undo Redo,应该符合你的要求,你看一下:http://msdn.microsoft.com/zh-cn/library/aa972158(VS.90).aspx
Sincerely,
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Jie BaoModerator 2012年1月23日 2:34
全部回复
-
WPF命令可以快速解决吧?Command="ApplicationCommands.Undo"
- 已建议为答案 Jie BaoModerator 2012年1月23日 2:34
-
Command中的Undo和Redo只针对TextBox 和RichTextBox,因为只有他们有内部一个集合来存储你所做的动作。 InkCanvas是没有的。
如果要实现,你就必须自己创建一个集合来去存储你在InkCanvas上做的所有动作,然后按照队列顺序撤销和重做。
撤销的时候,你可以从 InkCanvas的Strokes集合中移去最后一个添加的Stroke,重画你就可以把刚才撤销的Stroke保存以后再加入回去。
微软官方提供了一个例子,实现了InkCanvas的Undo Redo,应该符合你的要求,你看一下:http://msdn.microsoft.com/zh-cn/library/aa972158(VS.90).aspx
Sincerely,
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Jie BaoModerator 2012年1月23日 2:34