解决WINFORM下面rtf不能在IE上面显示图片的问题

2024-03-28 03:18

本文主要是介绍解决WINFORM下面rtf不能在IE上面显示图片的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近做了一个项目.使用WINFORM做的。

后台用C/S模式通过RICHTEXTBOX录入了RTF格式的String类型的数据

在前台需要通过网页显示出来。在网上找了很多控件。原理大多数基于RTF转换成HTML。

试了许多,但是都只能转换文字。不能转换图片。

网上还有一种方法是分离RTF格式的文字和图片。学习了一下,比较复制。放弃了。

 

最后学习了WPF。记得WPF APPLICATION 与WPF 浏览器应用程序里面都有个控件RICTEXTBOX,

可以通过读写XAML存储图文。突发奇想。能够使用在WINFORM下面加入WPF控件吗

 

 

实验了一下。是可以的。

 

最后解决方案。

编写了一个WPF用户自定义控件。里面加入RICHTEXTBOX。

在加入方法。

  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());

        }

这个方法主要实现把RICHTEXTBOX里面的内容转换成XAML格式。

 

在在WINFROM里面通过添加引用加入该控件。

 

 

浏览器要显示图文就可以通过WPF浏览器呈现技术

加入RICHTEXTBOX。

在通过一下这段代母读出来

 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);

这篇关于解决WINFORM下面rtf不能在IE上面显示图片的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/854286

相关文章

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

Python脚本实现图片文件批量命名

《Python脚本实现图片文件批量命名》这篇文章主要为大家详细介绍了一个用python第三方库pillow写的批量处理图片命名的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言源码批量处理图片尺寸脚本源码GUI界面源码打包成.exe可执行文件前言本文介绍一个用python第三方库pi

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个