【问题标题】:How to append RTF text in richtextbox in WPF with C#如何使用 C# 在 WPF 中的富文本框中附加 RTF 文本
【发布时间】:2015-02-15 21:49:21
【问题描述】:

我有一个 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 有后备设置,那就太好了

【问题讨论】:

  • 造型是什么意思?字体?
  • 我正在使用 tcp 将此字符串发送到其他计算机,因此其他计算机可能有也可能没有我在我的计算机中使用的相同字体,因此它应该自动回退到 arial

标签: c# wpf


【解决方案1】:
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);

【讨论】:

  • 不,它仍在添加这样的文字{\rtf1\ansi\ansicpg1252\uc1\ ...
猜你喜欢
  • 1970-01-01
  • 2019-05-11
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 2021-01-26
  • 2016-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多