gpt4 book ai didi

c# - 如何暂停Avalonedit的Undostack?

转载 作者:太空狗 更新时间:2023-10-29 22:54:16 24 4
gpt4 key购买 nike

  • 我在编辑器上进行了大量文本更改
  • 我无法(或很难)确定更改何时开始结束(文本更改通过滚动释放)
  • 我不想撤销更改

出于这个原因,我想暂停对堆栈的监听(或在任何文本更改后执行弹出操作)。但是

  • 堆栈不提供不执行撤消就弹出堆栈元素的方法
  • 我不想完全清除堆栈
  • 没有从文本文档中分离堆栈的方法
  • 没有办法暂停收听

你知道解决这个问题的可能性吗?

最佳答案

您希望撤消堆栈不记录一些更改,但又不想被清除?这意味着撤消堆栈的内容可能与文档内容不一致 - 当用户随后按下撤消时,它可能最终崩溃或更改预期位置以外的文本。

因此,AvalonEdit 不支持该操作。我们非常努力地避免不一致的撤消堆栈 - 例如,不允许重入更新(在 TextDocument.Changed 事件处理程序中更改文档)。

最接近禁用撤消堆栈的方法是设置

document.UndoStack.SizeLimit = 0;

这将有效地禁用监听更改,但它也会清除撤消堆栈。

附带说明:可以“分离”一个撤消堆栈(通过将 document.UndoStack 设置为另一个撤消堆栈),但这也会清除旧的撤消堆栈。

关于c# - 如何暂停Avalonedit的Undostack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7582234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com