If you want a custom formatter with DataFormatters.XamlPackage:
public class XamlPackageFormatter : ITextFormatter
{
public string GetText(System.Windows.Documents.FlowDocument document)
{
TextRange range = new TextRange(document.ContentStart, document.ContentEnd);
try
{
using (MemoryStream rtfMemoryStream = new MemoryStream())
{
using (StreamWriter rtfStreamWriter = new StreamWriter(rtfMemoryStream))
{
range.Save(rtfMemoryStream, DataFormats.XamlPackage);
rtfMemoryStream.Flush();
rtfMemoryStream.Position = 0;
StreamReader sr = new StreamReader(rtfMemoryStream);
return sr.ReadToEnd();
}
}
}
catch (Exception)
{
throw;
}
}
public void SetText(System.Windows.Documents.FlowDocument document, string text)
{
//if(text.StartsWith("PK")) => .XamlPackage
if (text.Equals("")) return;
TextRange range = new TextRange(document.ContentStart, document.ContentEnd);
try
{
using (MemoryStream rtfMemoryStream = new MemoryStream())
{
using (StreamWriter rtfStreamWriter = new StreamWriter(rtfMemoryStream))
{
rtfStreamWriter.Write(text);
rtfStreamWriter.Flush();
rtfMemoryStream.Seek(0, SeekOrigin.Begin);
range.Load(rtfMemoryStream, DataFormats.XamlPackage);
}
}
}
catch (Exception)
{
throw;
}
}
}
↧