1

我花了一天的时间在互联网上搜索我的问题的解决方案但没有成功......这在理论上似乎很简单。

我在 XAML 中有一个 RichTextBox。我的数据库中有一个名为“内容”的字段,类型为“LongText”

我只希望我的数据库以简单的样式(粗体、斜体、下划线)保存 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;

不要处理错误:“Exception XamlParseException”“Données non valides au niveau racine。Ligne 1,位置 1。”

这不是我尝试过的唯一代码,但我一个字都不懂就测试了……为什么“获取 RichTextBox 的内容”和“发送到我的数据库”并不那么容易?!

感谢所有帮助

4

1 回答 1

6
    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);
于 2012-10-23T15:54:41.380 回答