none
WPF 撤销 恢复 RRS feed

答案

  • 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
    2012年1月17日 5:46
    版主

全部回复

  • WPF命令可以快速解决吧?Command="ApplicationCommands.Undo"

     

     

    2012年1月16日 16:10
  • Inlcanvas里如何使用命令操作撤销恢复
    2012年1月17日 4:54
  • 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
    2012年1月17日 5:46
    版主