我有RichTextBox在WPF中包含InlineUIContainer
与一些自定义对象。如何为该UIContainer允许撤消事件?RichTextBox撤销进程为自定义UIContainer
回答
首先将命令绑定到撤消按钮。 写一个CommandBinding与此类似: <CommandBinding Command="Undo" Executed="ExecuteUndo" CanExecute="CanExecuteUndo"/>
然后设置RichTextBox中的Content
到这样的事情
{Binding myUndoManager.CurrentContent, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}
myUndoManager
与类型UndoManager
类的一个DependencyProperty。你需要实现这个类并从DependencyObject
和INotifyPropertyChanged
继承它。 CurrentContent
是DependencyProperty
,它保持显示正确的内容,而PropertyChanged
事件处理RichTextBox的Content
的所有更改。 (您可以将集合添加到类中,并且每次调用此事件时,都会向集合中添加一个新项目,此集合的项目类型可能具有某些属性,如TextDifferences,ActionType ...)
然后剩下的就是在代码中实现CanExecuteUndo
和ExecuteUndo
的主体。 (e.CanExecute
可以设置为true CanExecuteUndo
内,当且仅当该集合不为空,而且ExecuteUndo
从集合弹出的最后一个项目,并根据其ActionType
做必要的行动)
和Don”如果myUndoManager
对象与窗口在同一个类中,则忘记将窗口(或RichTextBox)的DataContext
设置为{Binding RelativeSource={RelativeSource Self}}
。
- 1. 自定义撤消重复的RichTextBox
- 2. .NET RichTextBox撤消
- 3. 撤销iOS证书撤销
- 4. 撤销快进合并
- 5. 自定义RichTextBox控件
- 6. 自定义动作为64位进程
- 7. 撤销TFS Unshelve
- 8. 撤销注册
- 9. 撤销ax.set_yticks([])
- 10. 撤销IBAction?
- 11. IdentityServer4 refresh_token撤销
- 12. Windbg撤销zap
- 13. 撤销迁移
- 14. 撤销removeFromSuperview?
- 15. 撤销plus.login
- 16. RichTextBox撤消添加空格
- 17. 自定义RMI Activator进程
- 18. cas自定义注销
- 19. 自定义注销春
- 20. WPF RichTextBox自定义文本属性
- 21. richtextbox,嵌入自定义对象
- 22. RichTextBox中的动态自定义内容
- 23. RichTextBox帮助保存*自定义*链接
- 24. 自定义RichTextBox事件句柄
- 25. 自动撤销发行证书
- 26. tinyMCE.execCommand(“mceInsertContent”自动越来越撤销
- 27. 撤消自定义git命令设置
- 28. 从公共架构撤销特权“创建表”但不是自定义架构
- 29. 如何在django中撤销用户的自定义模型权限
- 30. 在Android Canvas中使用撤销/重做操作的自定义画笔