WPF 读取和存储RichTextBox的文档内容

在编辑RichTextBox内容时,我们看不到其文档的源码内容,因为我们没有像在Web开发中那样有浏览器自带的翻译功能可以使用(相关内容http://blog.sina.com.cn/s/blog_685790700100l61i.html)。

将会用到两个对象

 System.Windows.Markup命名空间下的XamlWriter对象和XamlReader对象。

http://msdn.microsoft.com/zh-cn/library/system.windows.markup.xamlwriter.aspx

http://msdn.microsoft.com/zh-cn/library/system.windows.markup.xamlreader.aspx

 

 

利用XamlReader.Create()方法,读取内容并创建一个XamlReader对象实例。

 

            string xw = System.Windows.Markup.XamlWriter.Save(rtb2.Document);

            MessageBox.Show(xw);

            System.IO.StringReader sr = new System.IO.StringReader(xw);

            System.Xml.XmlReader xr = System.Xml.XmlReader.Create(sr);

            rtb1.Document = (FlowDocument)System.Windows.Markup.XamlReader.Load(xr);

然后将xw再转换成rtb1的内容(FlowDocument)。

 

 

另外,MessageBox.Show(xw)可以看到,无论将什么对象通过XamlWrite序列化成字符床,都会加入一个Xmlns属性,这个属性指定文档命名空间,所以,直接XamlReader一个Xaml格式的字符串还不够,还需要加入Xmlns属性。通过XamlWrite读取是自动就加上了的,如果想手工输入Xaml格式的字符串别忘了Xmlns。

posted @ 2024-04-10 19:24  小林野夫  阅读(124)  评论(0编辑  收藏  举报
原文链接:https://www.cnblogs.com/cdaniu/