zoukankan      html  css  js  c++  java
  • wpf 富文本编辑器richtextbox的简单用法

    最近弄得一个小软件,需要用到富文本编辑器,richtextbox,一开始以为是和文本框一样的用法,但是实践起来碰壁之后才知道并不简单。

    richtextbox 类似于Word,是一个可编辑的控件。结构图(来自网络)

     

    我的主要用途是用来支持一个基于C#的考试系统,由于考试科目涉及到图片以及还有复杂的数学公式,所以,传统的textbox控件是不能同时支持图片和文字以及rtf格式的类型的,而richtextbox恰好可以支持。

    难点1、 添加试题,将带有格式的文本输入进richtextbox,并存到数据库中。
    二进制 

    这种带格式的文本内容是不能直接存到数据库中的,所以必须将其内容进行转换,转换成数据库支持的格式,首先就是想到了二进制,经过实践,通过将其内容转换成二进制文件是可以保存到数据库中的,但是存在一个问题,就是程序运行时,将带有图片的文本内容存到数据库中后,本次运行的过程中是可以读取出来的,但是关闭程序后, 再次运行,就会出现路径错误的错误。

    base64String 

    经过一番探索,发现可以将其内容转换成base64String的格式,然后在存到数据库就可以实现自由存取。所以创建了以下的方法,用来将richtextbox中的内容转换成数据库可存储的格式

    using System.IO;
    //将富文本控件的内容转换成string类型
    public string GetTextByRichBox(RichTextBox box)
    {
      //创建一个流
      MemoryStream s = new MemoryStream();
      //获得富文本中的内容
      TextRange documentTextRange = new TextRange(box.Document.ContentStart, box.Document.ContentEnd);
      //将富文本中的内容转换成xaml的格式,并保存到指定的流中
      documentTextRange.Save(s, DataFormats.XamlPackage);
      //将流中的内容转换成字节数组,并转换成base64的等效格式
      return Convert.ToBase64String(s.ToArray());
    }
    将数据库中的数据转换回richtextbox可是别的内容的方法如下:

    /// <summary>
    /// 将数据库中的内容转换回richtextbox可识别的内容
    /// </summary>
    /// <param name="data">数据库取出的数据</param>
    /// <param name="box">接收的richtextbox控件名称</param>
    public void ShowTextToRichBox(string data,RichTextBox box)
    {
      MemoryStream s = new MemoryStream((Convert.FromBase64String(Convert.ToString(data))));
      TextRange TR = new TextRange(box.Document.ContentStart, box.Document.ContentEnd);
      TR.Load(s, DataFormats.XamlPackage);
    }
    ————————————————
    版权声明:本文为CSDN博主「LLLDa_&amp;」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/Ming_5257/article/details/90144316

  • 相关阅读:
    php测试题整理(0519)
    Ajax调用返回json,xml数据类型(0517--pm)
    python 收集测试日志--格式
    python3下tomorow模块报语法错误def async(n, base_type, timeout=None): ^ SyntaxError: invalid syntax
    appium 下载
    VMware 虚拟机设置固定ip
    Centos7 安装配置 SVN
    【Linux】 Centos7 安装 mysql-8.0
    win7 SP1 64位 原版 百度网盘下载
    win10操作系统 64位 原版 百度网盘下载
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14782162.html
Copyright © 2011-2022 走看看