在WPF中撤消/重做?

时间:2009-04-23 00:04:53

标签: c# wpf undo-redo

  

可能重复:
  data structure used to implement UNDO and REDO option

WPF是否提供了一个处理撤消/重做的框架?如果没有,那么通常的做法是什么?

谢谢!

2 个答案:

答案 0 :(得分:12)

我为WPF应用程序实现了undo / redo,最后将我的undo / redo代码发布到http://muf.codeplex.com/

你也可以通过NuGet获得它。只需寻找“MUF”或“Monitored Undo Framework”。它包括对Silverlight 4.0以及.NET 3.5,4.0和WP7的支持。

欢迎在codeplex网站(http://muf.codeplex.com/)上提出意见和问题。您还可以在那里找到完整的文档和示例应用程序。

答案 1 :(得分:2)

从.NET 3.0开始,这是快速获取本地化名称,关键手势和某些功能的方法:

<MenuItem Command="ApplicationCommands.Redo"/>
<MenuItem Command="ApplicationCommands.Undo"/>

但是,如果没有进一步的操作,每个TextBox都会维护它自己的撤消/重做列表,而重做/撤消命令只会影响当前具有焦点的项目。 必须有一些方法可以切换到单个窗口/应用程序范围的撤销/重做列表,但我刚刚开始搜索并且大多数时候我找到了&#34;如何自己编码&#34;制品

但是使用附加属性的技术,here描述,似乎非常有前景,可以很容易/稳定。