在Rich Textbox WPF中搜索并替换格式文本

问题描述

我想用与单词类似的不同语言(中文,印地文,英文)替换格式文本。

enter image description here

到目前为止,我尝试过的是:

            Lazy<RichTextBox> rtBox = new Lazy<RichTextBox>();
            TextRange tr = new TextRange(rtBox.Value.Document.ContentStart,rtBox.Value.Document.ContentEnd);
            tr.Load(new System.IO.MemoryStream(Encoding.Default.GetBytes(originalString)),DataFormats.Rtf);

            using (var memoryStream = new System.IO.MemoryStream())
            {
                tr.Save(memoryStream,DataFormats.Rtf);
                rtf = ASCIIEncoding.Default.GetString(memoryStream.ToArray());
            }

            rtf = rtf.Replace(old,new);

            MemoryStream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(rtf));
            rtBox.Value.SelectAll();
            rtBox.Value.Selection.Load(stream,DataFormats.Rtf);

“幕后”字符串如下例所示: 字符串示例= @“ {\ rtf1 \ ansi \ ansicpg1252 \ uc1 \ htmautsp \ deff2 {\ fonttbl {\ f0 \ fcharset0 Times New Roman;} {\ f2 \ fcharset0 Segoe UI;}} {\ colortbl \ red0 \ green0 \ blue0; \ red255 \ green255 \ blue255; } \ loch \ hich \ dbch \ pard \ plain \ ltrpar \ itap0 {\ lang1033 \ fs18 \ f2 \ cf0 \ cf0 \ ql {\ f2 {\ ltrch苹果不是} {\ b \ ltrch葡萄} \ li0 \ ri0 \ sa0 \ sb0 \ fi0 \ ql \ par} } }“;

我认为由于某种原因,格式化文本时,Replace方法不起作用。示例:{\ ltrch苹果不是} {\ b \ ltrch葡萄}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)