2016-12-03 1 views
0

Ich bin irgendwie neu hier, also entschuldige ich mich im Voraus, falls ich diese Frage nicht richtig stelle.Warum speichert meine WPF RichTextBox die Hoch- und Tiefscript-Daten nicht nach dem Speichern und Laden wieder?

Derzeit arbeite ich an einem kleinen Texteditor Projekt in WPF, C# und .Net 4.5, aber ich fand vor kurzem ein Problem, das ich nicht zu überwinden scheinen kann. Aus irgendeinem Grund speichert die RichTextBox, die in RTF für das Speichern von Vorschlägen konvertiert wird, nicht die BaselineAlignmentProperty (hochgestellte & Indices), die möglich sein sollte (gemäß der RTF 1.5 Spezifikation: http://www.biblioscape.com/rtf15_spec.htm Subscribting & Superscripting werden unterstützt (\ sub; \ super & \ nosupersub)).

-Code Ich verwende die RichTextBox RTF-Format zu konvertieren und die Rtf zu einem RichTextBox (Storing data of rich text box to database with formatting) zu laden:

public static string ToRtf(RichTextBox RichText) 
    { 
     string RtfText; 
     TextRange Text = new TextRange(RichText.Document.ContentStart, RichText.Document.ContentEnd); 
     using (MemoryStream MS = new MemoryStream()) 
     { 
      Text.Save(MS, DataFormats.Rtf); 
      RtfText = Encoding.ASCII.GetString(MS.ToArray()); 
     } 

     return RtfText; 
    } 

    public static void LoadRtfData(RichTextBox TextBox, string RtfText) 
    { 
     byte[] Data = Encoding.ASCII.GetBytes(RtfText); 

     using (MemoryStream MS = new MemoryStream(Data)) 
     { 
      TextRange Text = new TextRange(TextBox.Document.ContentStart, TextBox.Document.ContentEnd); 
      Text.Load(MS, DataFormats.Rtf); 
     } 
    } 

Auch das Dataformat zu Xaml oder XamlPackage zu wechseln (wie hier als Möglichkeit beschrieben : http://umaranis.com/2010/11/29/save-and-load-richtextbox-content-in-wpf/) führt zu einem Absturz.

-Code Ich verwende den BaselineAligmentProperty auf den markierten Text in MyTextBox zu ändern:

MyTextBox.Selection.ApplyPropertyValue(Inline.BaselineAlignmentProperty, BaselineAlignment.Bottom/*BaselineAligment.Subscript doesn't work either*/); 

Was soll ich tun, um meine RichTextBox Rtf gehören die BaselineAlignment Daten beim Speichern/Laden zu machen?

Antwort

0

Verwaltet, damit es funktioniert, indem das DataFormat in Xaml geändert wird.

Verwandte Themen