如何从RichTextBox控件的撤消堆栈中删除操作?

Ram*_*min 8 c# wpf stack undo richtextbox

似乎ClearUndo()在Windows窗体的RichTextBox中有这种方法(请参阅system.windows.forms.textboxbase.).

我需要类似的东西RichTextBox Control.这是因为(正如这里提到的:阻止将RichTextBox操作添加到控件的Undo堆栈中),每个更改都会添加到RichTextBox的撤消堆栈中.

我喜欢覆盖OnTextChanged事件并从Uno堆栈中删除一些这些更改.我怎样才能做到这一点?

谢谢.

Max*_*lev 12

您可以使用以下代码模拟ClearUndo()WPF RichTextBox控件:

richTextBox.IsUndoEnabled = false;
richTextBox.IsUndoEnabled = true;
Run Code Online (Sandbox Code Playgroud)

但是你无法控制Undo列表中的任何特定操作.

如果您仍想实现自己的Undo/Redo机制,最简单,最直接的方法是在每个重要文本更改中将控件的整个文本存储在数组中.但是,只有当你不打算用控件编辑大文本时,我才会建议它.