【发布时间】:2011-11-26 18:56:41
【问题描述】:
- 我在编辑器上执行了大量的文本更改
- 我无法(或很难)确定更改何时开始结束(文本更改通过滚动释放)
- 我不希望能够撤消更改
出于这个原因,我想暂停堆栈的侦听(或在任何文本更改后执行弹出)。但是
- 堆栈不提供在不执行撤消的情况下弹出堆栈元素的方法
- 我不想完全清除堆栈
- 没有方法可以从文本文档中分离堆栈
- 没有办法暂停收听
你知道解决这个问题的可能性吗?
【问题讨论】:
标签: c# wpf stack avalonedit
出于这个原因,我想暂停堆栈的侦听(或在任何文本更改后执行弹出)。但是
你知道解决这个问题的可能性吗?
【问题讨论】:
标签: c# wpf stack avalonedit
您希望撤消堆栈不记录某些更改,但又不想将其清除? 这意味着撤消堆栈的内容可能与文档内容不一致 - 当用户随后按下撤消时,它可能最终崩溃或更改预期位置以外的文本。
因此,AvalonEdit 不支持此操作。
我们非常努力地避免不一致的撤消堆栈 - 例如,不允许重入更新(在 TextDocument.Changed 事件处理程序中更改文档)。
最接近禁用撤消堆栈的方法是设置
document.UndoStack.SizeLimit = 0;
这将有效地禁用监听更改,但它也会清除撤消堆栈。
附带说明:可以“分离”撤消堆栈(通过将document.UndoStack 设置为另一个撤消堆栈),但这也会清除旧的撤消堆栈。
【讨论】: