2011-04-11 65 views
1

我正在使用C#代碼在WPF Windows應用程序上工作。這是我繼承的應用程序。我只有有限的經驗使用WPF。 我有一個Rich Text Box控件,用於使用html構建電子郵件。有代碼可以讀取富文本框內容並將結果作爲html存儲在數據庫中。此代碼正在工作。我需要編寫將HTML寫入富文本框的反轉,以便顯示爲文本。WPF將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); 
+0

有一個問題可以幫助您獲得更好的答案 - 您是否試圖獲取HTML的源代碼,您是否嘗試刪除所有標記並從HTML文檔中獲取純文本,或者您是否嘗試將HTML轉換爲豐富的文字? – djdanlib 2011-04-11 21:28:58

+0

這是後者。例如,如果文本是粗體,然後保存爲html,則它應該在RT框中顯示爲粗體。 – 2011-04-12 17:29:53

回答

0

從上面發佈的代碼看來,您將富文本框中的文本保存到xaml,然後將xaml轉換爲HTML。

如果您想要反轉,請將您的HTML轉換爲xaml,然後將其加載到富文本框中。

+0

我遇到問題的部分是獲取確切的語法。如果有人可以發佈樣本或將我指向一個樣本,那就太棒了。 – 2011-04-12 17:31:31

1

要RichTextBox中的內容保存到一個普通字符串,就可以在數據庫中保存:

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

要重新從字符串RichTextBox的:

EmailBodyRichTextBox.Document = XamlReader.Parse(formattedEmail); 

如果只想存儲電子郵件在數據庫中,然後重新加載到RichTextBoxes,轉換爲HTML沒有意義,它只能引入轉換格式不匹配。