Я новичок здесь, поэтому заранее извиняюсь, если я не задаю этот вопрос правильно.Почему мой 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 при сохранении/загрузки?