我正在使用C#代码在WPF Windows应用程序上工作。 这是我inheritance的应用程序。 我只有有限的经验使用WPF。 我有一个Rich Text Box控件,用于使用html构build电子邮件。 有代码来阅读富文本框内容并将结果作为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);
将RichTextBox的内容保存为可保存在数据库中的常规字符串:
string formattedEmail = XamlWriter.Save(EmailBodyRichTextBox.Document);
从字符串重新加载RichTextBox:
EmailBodyRichTextBox.Document = XamlReader.Parse(formattedEmail);
如果您只想将电子邮件存储在数据库中,然后将其重新加载到RichTextBoxes,则转换为HTML没有意义,它只能引入转换格式不匹配。
从您上面发布的代码看来,您将文本保存在富文本框中作为xaml,然后将xaml转换为HTML。
如果要反转,请将HTML转换为xaml,然后将其加载到富文本框中。