我需要将
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
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);
}