windows WPF将html写入格式文本框

ldioqlga  于 2023-01-21  发布在  Windows
关注(0)|答案(2)|浏览(221)

我正在使用C#代码开发一个WPF Windows应用程序。这是我继承的应用程序。我使用WPF的经验有限。我有一个用于使用html构建电子邮件的富文本框控件。有代码读取富文本框内容并将结果存储为数据库中的html。此代码工作正常。我需要写相反的是写html到富文本框,使它显示为文本。
下面是我读富文本框的代码.

TextRange xaml = new TextRange(EmailBodyRichTextBox.Document.ContentStart, EmailBodyRichTextBox.Document.ContentEnd);
            MemoryStream ms = new MemoryStream();
            xaml.Save(ms, DataFormats.Xaml);
            string xamlString = ASCIIEncoding.Default.GetString(ms.ToArray());

            string html = HTMLConverter.HtmlFromXamlConverter.ConvertXamlToHtml("<FlowDocument>" + xamlString + "</FlowDocument>");

            html = HttpUtility.HtmlEncode(html);
c8ib6hqw

c8ib6hqw1#

从上面发布的代码来看,您似乎是将富文本框中的文本保存为xaml,然后将xaml转换为HTML。
如果你想反转,那么把你的HTML翻译成xaml,然后把它加载到富文本框中。

bnlyeluc

bnlyeluc2#

要将RichTextBox的内容保存为可保存在数据库中的常规字符串:

string formattedEmail = XamlWriter.Save(EmailBodyRichTextBox.Document);

要从字符串重新加载RichTextBox:

EmailBodyRichTextBox.Document = XamlReader.Parse(formattedEmail);

如果您只想将电子邮件存储在数据库中,然后将它们重新加载到RichTextBoxes中,则转换为HTML是没有意义的,它只会引入转换格式不匹配。

相关问题