WPF将html写入富文本框

时间:2011-04-11 21:25:50

标签: c# .net wpf windows

我正在使用C#代码处理WPF Windows应用程序。这是我继承的应用程序。我只使用WPF的经验有限。 我有一个Rich Text Box控件,用于使用html构建电子邮件。有代码可以读取Rich Text Box内容并将结果作为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);

2 个答案:

答案 0 :(得分:1)

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

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

从字符串重新加载RichTextBox:

EmailBodyRichTextBox.Document = XamlReader.Parse(formattedEmail);

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

答案 1 :(得分:0)

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

如果要反转,则将HTML转换为xaml,然后将其加载到富文本框。