我目前正在HTML WYSIWYG /"源代码"并排编辑器中实现AvalonEdit.当用户从设计模式(a RichTextBox)切换到源模式(AvalonEdit TextEditor)时,RTB中的XAML将转换为HTML并写入TextEditor.Document.Text属性.
这显然消除了撤销堆栈.
如何将文档的状态推送到UndoStack用户可以"返回"?我尝试将写入操作包装在a中RunUpdate() IDisposable,但这不起作用:
using (var _ = TextEditor.Document.RunUpdate())
{
TextEditor.Document.Text = html;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.
由于这已经晚了几年,我不确定它是否直接回答了问题。然而,当前版本的 AvalonEdit 功能设置TextEditor.Text将清除撤消堆栈,但修改TextEditor.Document.Text不会。(这与提问者观察到的行为背道而驰,所以也许从那以后的几年里它已经发生了变化)。查看源代码,TextEditor.Document.Text似乎执行的代码相当于
this.Replace(0, this.TextLength, value);
Run Code Online (Sandbox Code Playgroud)
因此,即使在旧版本的库上,类似的调用也可能起作用。
| 归档时间: |
|
| 查看次数: |
119 次 |
| 最近记录: |