【发布时间】:2020-11-23 11:58:46
【问题描述】:
我正在使用以下方法来替换 rtf 文本中的文本。
rtBox = new Lazy<RichTextBox>();
MemoryStream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(rtfTextToBeReplaced));
TextRange tr = new TextRange(rtBox.Value.Document.ContentStart, rtBox.Value.Document.ContentEnd);
tr.Load(stream, DataFormats.Rtf);
string rtf;
using (var memoryStream = new MemoryStream())
{
tr.Save(memoryStream, DataFormats.Rtf);
rtf = ASCIIEncoding.Default.GetString(memoryStream.ToArray());
}
rtf = rtf.Replace("a", "B");
结果是:
{\rtf1\Bnsi\Bnsicpg1252\uc1\htmButsp\deff2{\fonttbl{\f0\fchBrset0 Times New RomBn;}{\f2\fchBrset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\ red255\green255\blue255;}\loch\hich\dbch\pBrd\plBin\ltrpBr\itBp0{\lBng1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch B}\li0\ri0\sB0\sb0 \fi0\ql\pBr} } }
是否可以只替换richtextBox 中的文本而不是标签,但当richtextBox 包含文本和图像时保留图像?
如果我用过
tr.Load(new MemoryStream(Encoding.Default.GetBytes(rtfTextToBeReplaced)), DataFormats.Rtf);
temp = tr.Text.Trim();
temp = temp.Replace("a", "B");
然后它只是用文本替换了richText,而不是用图像和文本替换了richText。
【问题讨论】:
标签: wpf image text replace richtextbox