2016-12-03 7 views
0

나는이 질문을 제대로하지 않을 경우에 대비하여 좀 더 신의를 표합니다.내 WPF RichTextBox가 저장 및 다시로드 한 후 위 첨자 및 아래 첨자 데이터를 유지하지 않는 이유는 무엇입니까?

현재, 나는 닷넷 4.5, WPF의 작은 문서 편집기 프로젝트 C#을하고 있어요,하지만 나는 최근에 내가 극복 할 수없는 것 문제를 발견했다. 어떤 이유에서든 Rtf로 변환 된 제안을 저장하는 RichTextBox는 가능해야하는 BaselineAlignmentProperty (위 첨자 & 개의 아래 첨자)을 저장하지 않으며 Rtf 1.5 사양에 따라 http://www.biblioscape.com/rtf15_spec.htm 하위 스크립트 & superscripting이 지원됩니다 (\ sub; \ super & \ nosupersub)). 가능성 여기에 설명 된대로 (Xaml 또는 XamlPackage에 DATAFORMAT을 변경, 또한

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

:

코드 나 RTF 형식으로하여 RichTextBox를 변환하고를 RichTextBox (Storing data of rich text box to database with formatting)에 RTF 형식을로드하는 데 사용하고 있습니다 : http://umaranis.com/2010/11/29/save-and-load-richtextbox-content-in-wpf/)로 인해 충돌이 발생합니다. 내가 MyTextBox에서 선택한 텍스트에 BaselineAligmentProperty를 변경하려면 사용하고

코드 :

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

내가 /로드를 저장할 때 내를 RichTextBox RTF 형식이 BaselineAlignment 데이터를 포함하도록해야합니까?

답변

0

DataFormat을 Xaml로 변경하여 작동하도록 관리했습니다.