2016-12-03 2 views
0

Я новичок здесь, поэтому заранее извиняюсь, если я не задаю этот вопрос правильно.Почему мой WPF RichTextBox не сохраняет данные Superscript и Subscript после сохранения и повторной загрузки?

В настоящее время я работаю над небольшим проектом TextEditor в WPF, C# и .Net 4.5, но в последнее время я нашел вопрос, который я не могу преодолеть. По какой-то причине RichTextBox, который преобразуется в Rtf для сохранения предложений, не сохраняет BaselineAlignmentProperty (верхние индексы &), что должно быть возможным (в соответствии с спецификацией Rtf 1.5: http://www.biblioscape.com/rtf15_spec.htm поддерживаются субкрипты & (\ sub; \ super & \ nosupersub)).

код я использую для преобразования RichTextBox в Rtf и загрузить в .rtf в 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); 
     } 
    } 

Кроме того, изменение DataFormat к Xaml или XamlPackage (как описано здесь, как возможность : http://umaranis.com/2010/11/29/save-and-load-richtextbox-content-in-wpf/) приводит к сбою.

код, я использую, чтобы изменить BaselineAligmentProperty на выбранном тексте на MyTextBox:

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

Что я должен сделать, чтобы мой RichTextBox Rtf включают данные BaselineAlignment при сохранении/загрузки?

ответ

0

Удалось заставить его работать, изменив DataFormat на Xaml.

Смежные вопросы