richTextbox图文样式的保存

做一个项目,需要图文一起存入数据库,在网上浏览了很久。终于实现了在RICHTEXTBOX里面和数据库读写图文的方法。

1.存入数据库。


  public string toxaml()
        {
           // Stream s = new MemoryStream();  // 其他的什么Stream类型都没问题
           //// XamlWriter.Save(
            MemoryStream s=new MemoryStream();
            TextRange documentTextRange = new TextRange(this.richTextBox1.Document.ContentStart, this.richTextBox1.Document.ContentEnd);
            documentTextRange.Save(s, DataFormats.XamlPackage);
          return Convert.ToBase64String(s.ToArray());
            //return Convert.ToString(s.ToArray());

        }

2.存入数据库。

注意不能用//return Convert.ToString(s.ToArray());不知道什么原因。用这句存入数据库是SYSTEM..BYTE[] ?

3.读取数据库

 TextRange tr = new TextRange(this.richTextBox1.Document.ContentStart, this.richTextBox1.Document.ContentEnd);
            ////convert string to MemoryStream
            //MemoryStream ms = GetMemoryStreamFromString(buffer);
            //tr.Load(ms, DataFormats.XamlPackage);
            MemoryStream s = new MemoryStream((Convert.FromBase64String(buffer)));
            //   XmlReader xr = XmlReader.Create(s);
            //FlowDocument fd = XamlReader.Load(xr) as FlowDocument;
            //this.richTextBox1.Document = fd;
            TextRange TR = new TextRange(this.richTextBox1.Document.ContentStart, this.richTextBox1.Document.ContentEnd);
            TR.Load(s, DataFormats.XamlPackage);

Xaml文件有两种,一种是保存图片的地址的Xaml,另外一种是直接保存图片的XamlPackage。使用直接保存图片的模式,这样图片是以二进制的形式存在Xaml文件中的,读取后就不会有问题了。另外读取时使用的是TextRange.Load,格式选择就是XamlPackage。读取Xaml也没有问题,还可以读Rtf和Text文件。XamlReader不适合用来读取FlowDocument的内容。

时间: 2024-10-21 09:05:26

richTextbox图文样式的保存的相关文章

WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展

原文:WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式.水印.Label标签.功能扩展 一.前言.预览 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要是对文本输入控件进行样式开发,及相关扩展功能开发,主要内容包括: 基本文本框TextBox控件样式及扩展功能,实现了样式.水印.Label标签.功能扩展: 富

Myeclipse修改格式化代码的样式和保存自动格式化

第一种方法:下载格式化代码样式文件,参考这位老兄的方法(包含了保存自动格式化):http://blog.csdn.net/u010028869/article/details/49780515   下载下来的文件是这个样子: 第二种方法:先上图,以修改方法的参数在一行显示为例.如下图(如果图片看不清,用鼠标把图片拖到新的标签卡查看即可).

markdown样式代码保存

/*此样式是没任何效果的,留给你填写的 你可以随意修改,组合你想要的css样式 没有最好的,只有最合适的, 看看后面的示例,你就会懂得写个你最爱的样式,并保存了的! 建议先复制某一你喜欢的css模板样式到此样式下,再在此基础上自定义自己的css样式. 来试试吧! ^_^*/ h1,h2,h3,h4,h5,h6 { color: #3e3e3e; } h1 span,h2 span,h3 span,h4 span{ border-left: 5px solid #ff5722; padding-l

ArcGIS Engine开发之地图文档保存

在对地图文档进行修改后,经常需要对其进行保存.地图文档的保存有直接保存和另存为两种方式.这里的地图文档的修改指的是修改地图文档文件记录信息,不是对空间数据的编辑. 1.地图文档保存 具体实现的思路: 1)地图文档的保存主要使用IMapDocument接口,首先使用IMxdContents接口读取已打开的地图文档的内容,并使之替换IMapDocument接口的实例对象. 2)保存时使用IMapDocument接口的Save方法,函数原型为 public void Save (bool)bUsere

ArcGIS地图文档MXD效率慢的一点建议(二)

经常有用户询问,我的MXD图层比较多,而且配置好了相关的符号,但是我的服务器更换了一下,而且两个服务器的要素类名称都是一样的,我想配置一下新的数据源,而且我的这个MXD已经连接不到原来的数据源了,打开这个MXD,要花费很长时间,请问有什么可以避免的么? 因为这种情况下,打开MXD的时候,会查询数据源,特别是SDE数据源,如果找不到MXD记录的相关参数信息,系统会默认一直在找相应的IP(也可以理解一直在Ping),而且也会寻找你们局域网里面的所有机器,那么如果数据图层比较多,这个时间肯定会比较长的

Css的样式的概述和关于background的用法

Css对于前端来说,就像是一件衣服一样,会让你的页面更加生动形象的展现在用户面前,是用户感觉眼前一亮.一个好的css的编写会带给你不同的视觉享受,同时让你的页面大放异彩. 样式通常保存在外部的 .css 文件中.通过仅仅编辑一个简单的 CSS 文档,外部样式表使你有能力同时改变站点中所有页面的布局和外观.由于允许同时控制多重页面的样式和布局,CSS 可以称得上 WEB 设 计领域的一个突破.样式表允许以多种方式规定样式信息.样式可以规定在单个的 HTML 元素中,在 HTML 页的头元素中,或在

基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作

在很多Web系统中,一般都可能提供一些图标的选择,方便配置按钮,菜单等界面元素的图标,从而是Web系统界面看起来更加美观和协调.但是在系统中一般内置的图标样式相对比较有限,而且硬编码写到样式表里面,这样给我们扩展使用有很多的不方便.基于这个原因,我想如果能够独立一个模块,自动根据图标生成图标CSS样式文件,并存储相应的记录到数据库里面,方便我们查询显示,那样我们使用起来就很方便了,最后有了这些数据,只需要做一个通用的图标选择界面,并可以在很多地方重用了.本文正是基于这个思路,开发了一个图标管理模

基于MVC+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作

在很多Web系统中,一般都可能提供一些图标的选择,方便配置按钮,菜单等界面元素的图标,从而是Web系统界面看起来更加美观和协调.但是在系统中一般内置的图标样式相对比较有限,而且硬编码写到样式表里面,这样给我们扩展使用有很多的不方便.基于这个原因,我想如果能够独立一个模块,自动根据图标生成图标CSS样式文件,并存储相应的记录到数据库里面,方便我们查询显示,那样我们使用起来就很方便了,最后有了这些数据,只需要做一个通用的图标选择界面,并可以在很多地方重用了.本文正是基于这个思路,开发了一个图标管理模

WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: DataGrid自定义样式: ListView自定义样式: 二.DataGrid自定义样式 DataGrid是常用的数据列表显示控件,先看看实现的效果(动态图,有点大): DataGrid控件样式结构包括以下几个部分: 列头header样式 调整列头宽度的列分割线样式 行样式 行头调整高度样式 行头部样式