我试图在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
如何正确显示邮件的富文本正文?
答案 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);
}