在WPF RichTextBox中显示富文本电子邮件

时间:2015-12-15 03:57:04

标签: c# wpf outlook

我试图在WPF RichTextBox中显示富文本电子邮件的内容(使用c#和outlook interop)。用户从列表框控件中选择一封电子邮件,其内容显示在RichTextBox中。当用户选择一条消息时,我有以下代码适用(其中_rtb是对RichTextBox的引用)。

        public Object SelectedMessage {
        get
        {
            return _selectedItem;
        }
        set
        {
            _selectedItem = value as Outlook.MailItem;
            _rtb.Document.Blocks.Clear();
            _rtb.Document.Blocks.Add(new Paragraph(new Run(System.Text.Encoding.ASCII.GetString(_selectedItem.RTFBody))));


        }
    }

这在一定程度上有效,但是框中显示的文本没有格式化 - 而是显示为包含标记的纯文本:富文本框显示如下行:

{\ rtf1 \ ansi \ ansicpg1252 \ fromhtml1 \ fbidis \ deff0 {\ fonttbl

如何正确显示邮件的富文本正文?

1 个答案:

答案 0 :(得分:2)

您可以像在此StackOverflow question中一样加载RTF。

public void SetRTFText(string text)
{
    MemoryStream stream = new MemoryStream(ASCIIEncoding.Default.GetBytes(text));
    this.mainRTB.Selection.Load(stream, DataFormats.Rtf);
}