WPF将html写入富文本框

本文关键字:文本 html WPF | 更新日期: 2023-09-27 17:49:39

我正在使用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);

WPF将html写入富文本框

从上面发布的代码来看,似乎是将富文本框中的文本保存为xaml,然后将xaml转换为HTML。

,如果你想反转,然后翻译你的HTML到xaml,然后加载到富文本框。

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

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

从字符串中重载RichTextBox:

EmailBodyRichTextBox.Document = XamlReader.Parse(formattedEmail);

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