2015-04-13 18 views
12

Obecnie pracuję nad implementacją AvalonEdit w edytorze HTML WYSIWYG/"Kod źródłowy" obok siebie. Kiedy użytkownik przełącza się z trybu projektowania (RichTextBox) do trybu źródłowego (AvalonEdit TextEditor), XAML z RTB jest konwertowany na HTML i zapisywany do właściwości TextEditor.Document.Text.AvalonEdit :: Jak zachować aktualny stan w UndoStack?

To pozornie usuwa stos cofania.

Jak mogę przekazać stan dokumentu do UndoStack, aby użytkownik mógł "wrócić"? Próbowałem owijania operacji zapisu w RunUpdate() IDisposable, ale to nie działa:

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

Każda pomoc będzie bardzo mile widziane.

Odpowiedz

0

Ponieważ jest to kilka lat późno, nie jestem pewien, czy odpowiada bezpośrednio na pytanie. Jednak obecna wersja AvalonEdit działa tak, że ustawienie TextEditor.Text wyczyści stos cofania, ale modyfikacja TextEditor.Document.Text nie będzie. (Jest to sprzeczne z zachowaniem obserwowanym przez pytającego, więc być może zmieniło się w ciągu ostatnich kilku lat). Patrząc na kod źródłowy, TextEditor.Document.Text wydaje się wykonać odpowiednik kodu do

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

więc może podobna rozmowa będzie działać nawet na starszych wersjach biblioteki.

Powiązane problemy