2012-10-23 90 views
1

我花了一天在互聯網上搜索我的問題的解決方案,但沒有成功......這在理論上似乎很簡單。C#WPF - 字符串(存儲在數據庫中)From/To RichTextBox

我在XAML中有一個RichTextBox。 我有我的數據庫名爲「內容」類型「長文本」

我只想場我的數據庫保存與簡約的風格(粗體,斜體,下劃線)在RichTextBox的內容,我可以叫我的數據庫,填補我的RichTextBox內容保存在我的數據庫中,同時保留文本的樣式。

之後,我必須將這些數據顯示爲博客,但是......必須已成功保存並加載數據。

XAML:

<RichTextBox x:Name="nameTextEditor" TabIndex="2" Grid.Row="2" SpellCheck.IsEnabled="True"> 

C#

FlowDocument doc = new FlowDocument(); 
     StringReader sr = new StringReader(monArticle.Content); 
     XmlReader xmlReader = XmlReader.Create(sr); 
     Section sec = XamlReader.Parse(monArticle.Content) as Section; 
     while (sec.Blocks.Count > 0) 
     { 
      var block = sec.Blocks.FirstBlock; 
      sec.Blocks.Remove(block); 
      doc.Blocks.Add(block); 
     } 
     nameTextEditor.Document = doc; 

不要用錯誤的工作: 「異常XamlParseException」 「最近搜索非valides AU niveau拉辛利涅1,位置1.」

這不是我嘗試過的唯一代碼,但是我測試時沒有理解一個單詞......爲什麼「採取RichTextBox的內容」和「發送到我的數據庫」並不那麼容易?

感謝所有幫助

回答

5
var doc = rtb.Document; 
    var range = new TextRange(doc.ContentStart, doc.ContentEnd); 
    var ms = new MemoryStream(); 
    range.Save(ms, DataFormats.Rtf); 
    ms.Seek(0, SeekOrigin.Begin); 

    var rtfString=new StreamReader(ms).ReadToEnd(); 

現在發送rtfString到數據庫。 要在富文本框中顯示回:

var doc = rtb.Document; 
var range = new TextRange(doc.ContentStart, doc.ContentEnd); 
var ms = new MemoryStream(); 
var sw = new StreamWriter(ms); 
sw.Write(rtfString); 
sw.Flush(); 
ms.Seek(0, SeekOrigin.Begin); 
range.Load(ms, DataFormats.Rtf); 
+0

謝謝,我試試吧,明天在工作時間 – Saesee

+0

謝謝,它工作得很好! – Saesee

+0

...(精確)修改小波 – Saesee

相關問題