2010-10-24 2 views
3

Мне нужно загрузить/сохранить данные из WPF RichTextBox в пользовательском формате (аналогично Markdown).WPF RichTextBox: сохранить/загрузить в пользовательском формате

RichTextBox поддерживает сохранение/загрузка в нескольких основных форматах (Rtf, Text, XAML) с использованием TextRange.Save метода:

using (FileStream fs = File.OpenWrite(file)) { 
    TextRange text = new TextRange(rtNote.Document.ContentStart, rtNote.Document.ContentEnd); 
    text.Save(fs, DataFormats.Xaml);     
} 

Каков наилучший способ реализации пользовательского формата сохранения/загрузки?

Один из способов, который я могу придумать, заключается в том, чтобы сохранить TextRange в поток памяти как Xaml, проанализировать полученный XML и перебрать его, чтобы выполнить преобразование. Есть ли более простой способ?

ответ

0

Из всех DataFormat.Format с доступными только 4 совместимы с TextRange.Save:

В настоящее время поддерживаются форматы данных DataFormats.Rtf, DataFormats.Text, DataFormats.Xaml и DataFormats.XamlPackage

источник: http://msdn.microsoft.com/en-us/library/ms598701.aspx

И из того, что я видел в отражении этого класса, DataFormats не предоставляет API для добавления новых форматов.