我有一个Windows应用程序(C#)用于编辑图像,其中包括从剪贴板中粘贴图像或文本的功能。当剪贴板包含文本时,它将其转换为带有默认字体样式的图片(GDI +),然后它就像粘贴图像一样工作。 我想能够将剪贴板中的某些rtf格式的文本(例如从VS20xx格式化的源代码复制)转换为图像以执行相同的操作,但同时保留字体、颜色(包含表格和图片也不错!) 我可以识别剪贴板内容为rtf格式文本,但我没有办法将其呈现为图像! 我需要在内存中完成所有操作,而不需要打印设备并将文件转储到磁盘上。
我有一个Windows应用程序(C#)用于编辑图像,其中包括从剪贴板中粘贴图像或文本的功能。当剪贴板包含文本时,它将其转换为带有默认字体样式的图片(GDI +),然后它就像粘贴图像一样工作。 我想能够将剪贴板中的某些rtf格式的文本(例如从VS20xx格式化的源代码复制)转换为图像以执行相同的操作,但同时保留字体、颜色(包含表格和图片也不错!) 我可以识别剪贴板内容为rtf格式文本,但我没有办法将其呈现为图像! 我需要在内存中完成所有操作,而不需要打印设备并将文件转储到磁盘上。
有点巧妙,但我很久以前做过类似的事情。
01) 首先创建一个从rich textbox继承的自定义用户控件。
02) 创建一个具有rich textbox整体大小的位图(缓冲区)。 (我们将使用它作为缓冲区)
03) 重写OnPaint(PaintEventArgs e)
04) 调用richtextbox.DrawToBitmap(buffer,Rect(0,0,buffer.Size.Width,buffer.Size.Height)); 它会起作用,但不会在智能感知中显示。
05) 在剪贴板命令上将其发送到richtextbox,它应该重新绘制到缓冲区。
06) 获取图像缓冲区并随意处理。
为确保调用OnPaint命令,请参阅此帖子Correctly Overriding OnPaint (Rich Textbox)。