如何使用C#在RTF中的richtextbox中附加RTF文本

时间:2014-12-17 10:59:29

标签: c# wpf

我有RTF字符串,想要将RTF附加到其他RichTextBox我正在使用richtextbox1.AppendText(RTFString);,但是附加了所有文字而没有样式化文本

string RTFString = {\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}        {\f2\fcharset0 Segoe UI;}{\f3\fcharset0 Blackadder ITC;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs21\f2\cf0 \cf0\ql\sl20\slmult0{\fs108\f3 {\ltrch uzair}\li0\ri0\sa0\sb0\fi0\ql\sl20\slmult0\par}
}

}{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard \{\\rtf1\\ansi\\ansicpg1252\\uc1\\htmautsp\\deff2\{\\fonttbl\{\\f0\\fcharset0 Times New Roman;\}\{\\f2\\fcharset0 Segoe UI;\}\{\\f3\\fcharset0 Blackadder ITC;\}\}\{\\colortbl\\red0\\green0\\blue0;\\red255\\green255\\blue255;\}\\loch\\hich\\dbch\\pard\\plain\\ltrpar\\itap0\{\\lang1033\\fs21\\f2\\cf0 \\cf0\\ql\\sl20\\slmult0\{\\fs108\\f3 \{\\ltrch uzair\}\\li0\\ri0\\sa0\\sb0\\fi0\\ql\\sl20\\slmult0\\par\} \par \} \par \} }

附加

richtextBox1.AppendText(RTFString);

输出

Same as the "RTFString" text

可选 在设置fontFamily样式时,如果fontFamily具有后备设置,那么它将很棒

1 个答案:

答案 0 :(得分:3)

FlowDocument document = new FlowDocument();
Paragraph paragraph = new Paragraph();
paragraph.Inlines.Add(new Bold(new Run("Your text")));
document.Blocks.Add(paragraph);
richTextBox1.Document = document;

使用Paragraph类并将其添加为文档。希望它会有所帮助。

修改

如果你谈论rtf文本,那么试试这个

MemoryStream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(text));
this.mainRTB.Selection.Load(stream, DataFormats.Rtf);