2015-04-13 12 views
12

Tôi hiện đang làm việc để triển khai AvalonEdit trong trình soạn thảo HTML WYSIWYG/"Mã nguồn" cạnh nhau. Khi người dùng chuyển từ Chế độ thiết kế (RichTextBox) sang chế độ nguồn (AvalonEdit TextEditor) XAML từ RTB được chuyển thành HTML và được ghi vào thuộc tính TextEditor.Document.Text.AvalonEdit :: Làm cách nào để bảo toàn trạng thái hiện tại trong Hoàn tác?

Điều này dường như xóa sạch hoàn tác ngăn xếp.

Làm cách nào để chuyển trạng thái của Tài liệu sang số UndoStack để người dùng có thể "quay lại"? Tôi cố gắng gói các hoạt động ghi trong một RunUpdate() IDisposable, nhưng điều đó không làm việc:

using (var _ = TextEditor.Document.RunUpdate()) 
{ 
    TextEditor.Document.Text = html; 
} 

Bất kỳ trợ giúp sẽ được đánh giá rất nhiều.

Trả lời

0

Vì đây là một vài năm muộn, tôi không chắc chắn nếu nó trả lời câu hỏi trực tiếp. Tuy nhiên, phiên bản hiện tại của các chức năng AvalonEdit như vậy mà thiết lập TextEditor.Text sẽ xóa hoàn tác ngăn xếp, nhưng sửa đổi TextEditor.Document.Text sẽ không. (Điều này chống lại hành vi được quan sát bởi người hỏi, vì vậy có lẽ nó đã thay đổi trong vài năm kể từ đó). Nhìn vào mã nguồn, TextEditor.Document.Text xuất hiện để thực thi mã tương đương với

this.Replace(0, this.TextLength, value); 

vì vậy có lẽ một cuộc gọi tương tự sẽ hoạt động ngay cả trên các phiên bản cũ của thư viện.

Các vấn đề liên quan