我花了一天的时间在网上寻找解决问题的方法,但没有成功…这在理论上似乎很简单。
我有一个xaml格式的richtextbox。
我的数据库中有一个名为“content”的字段,类型是“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;

不使用错误:
“异常XamlParseException”
“唐尼是一个非常好的选择。对准1,位置1。'
这不是我试过的唯一一个代码,但我测试时一个字也不懂…为什么“获取richtextbox的内容”和“发送到我的数据库”不那么容易?啊!
谢谢你的帮助

最佳答案

    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发送到数据库。
要在richtext框中显示它:
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);

10-08 05:17
查看更多