我花了一天的时间在网上寻找解决问题的方法,但没有成功…这在理论上似乎很简单。
我有一个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);