如何将 TextRange 附加到流文档而不丢失格式

问题描述 投票:0回答:1

我需要将

TextRange
添加到流程文档,而不丢失
RichTextBox
中对其完成的格式。我收到
RichTextBox.Text
,它将其转换为字符串并丢失所有格式,但我不想丢失从
RichTextBox
读取的文本格式。

TextRange t = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
String s = t.Text;

FlowDocument fd = new FlowDocument();
  /*
    this snippet works but looses formatting
    Paragraph p = new Paragraph();
    p.Inlines.Add(s);
    fd.Blocks.Add(p);
  */
fd.Blocks.Add(t); // cannot convert TextRange to Block
c# wpf richtextbox textrange
1个回答
0
投票

RichTextBox.Rtf 将为您提供带格式的原始内容。那么,也许是这样的?

FlowDocument flowDoc = new FlowDocument();
TextRange textRange = new TextRange(flowDoc.ContentStart, flowDoc.ContentEnd);

using (MemoryStream ms = new MemoryStream(Encoding.ASCII.GetBytes(rtb.Rtf)))
{
    textRange.Load(ms, System.Windows.DataFormats.Rtf);
}
© www.soinside.com 2019 - 2024. All rights reserved.