Sae*_*see 1 c# database xaml binding richtextbox
我花了一天的时间在互联网上搜索我的问题的解决方案但没有成功......理论上这似乎很简单.
我在XAML中有一个RichTextBox.我在我的数据库中有一个名为"content"的字段"LongText"
我只是希望我的数据库以简单的样式(粗体,斜体,下划线)保存RichTextBox的内容,并且我可以调用我的数据库,填充我的数据库中存储的RichTextBox内容,同时保持文本的样式.
之后,我将不得不将这些数据显示为博客,但是......必须已经成功保存并加载数据.
XAML:
<RichTextBox x:Name="nameTextEditor" TabIndex="2" Grid.Row="2" SpellCheck.IsEnabled="True">
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
不要使用错误:"Exception XamlParseException""Donnéesnonvalides au niveau racine.Ligne 1,position 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();
Run Code Online (Sandbox Code Playgroud)
现在将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);
Run Code Online (Sandbox Code Playgroud)