2016-12-03 3 views
0

Je suis un peu nouveau ici, donc je m'excuse d'avance au cas où je ne pose pas cette question correctement.Pourquoi mon WPF RichTextBox ne conserve-t-il pas les données Exposant et Indice après les avoir sauvegardées et rechargées?

Actuellement, je travaille sur un petit projet TextEditor dans WPF, C# et .Net 4.5, mais j'ai récemment trouvé un problème que je ne peux pas sembler surmonter. Pour une raison quelconque, le RichTextBox qui est converti en Rtf pour l'enregistrement des propositions ne sauvegarde pas les BaselineAlignmentProperty (superscripts & indices), ce qui devrait être possible (selon la spécification Rtf 1.5: http://www.biblioscape.com/rtf15_spec.htm l'indice & est pris en charge (\ sub; \ super & \ nosupersub)).

code J'utilise pour convertir le RichTextBox Rtf et de charger le Rtf à un RichTextBox (Storing data of rich text box to database with formatting):

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); 
     } 
    } 

En outre, le changement de DataFormat à Xaml ou XamlPackage (comme décrit ici comme une possibilité : http://umaranis.com/2010/11/29/save-and-load-richtextbox-content-in-wpf/) entraîne un blocage.

code J'utilise pour changer le BaselineAligmentProperty sur le texte sélectionné à MyTextBox:

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

Que dois-je faire pour mon RichTextBox Rtf comprennent les données BaselineAlignment lors de l'enregistrement/chargement?

Répondre

0

Géré pour que cela fonctionne en changeant le DataFormat en Xaml.