0xD*_*EEF 5 c# wpf stack avalonedit
由于这个原因,我想暂停监听堆栈(或在任何textchange之后执行pop).但
你知道解决这个问题的可能性吗?
您希望撤消堆栈不记录某些更改,但是也不想将其清除?这意味着撤消堆栈的内容可能与文档内容不一致 - 当用户然后按下撤消时,它可能最终崩溃或更改除预期位置之外的文本.
因此,AvalonEdit不支持此操作.我们非常努力地避免不一致的撤销堆栈 - 例如,TextDocument.Changed不允许重入更新(在事件处理程序中更改文档).
您可以设置的最接近禁用撤消堆栈的方法是设置
document.UndoStack.SizeLimit = 0;
Run Code Online (Sandbox Code Playgroud)
这将有效地禁用侦听更改,但它也将清除撤消堆栈.
作为旁注:可以"分离"撤销堆栈(通过设置document.UndoStack到另一个撤消堆栈),但这也将清除旧的撤消堆栈.