WPF中RichTextBox中的富文本怎样保存为本地png图片

dq19871123 2013-07-13 08:50:21
在WPF中做了一个文本编辑器,包括字体、颜色、大小、段落格式等,用RichTextBox来显示。需要在用户完成操作点击保存按钮后,将RichTextBox中的富文本保存为本地png图片。因为用户输入内容可能会超出RichTextBox的可显示区域而产生滚动条,因此不能直接采用屏幕截图的方法。有什么好方法么?
...全文
407 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ima_zhan 2014-09-05
  • 打赏
  • 举报
回复
找到截当前图的操作了

FileStream pngfs = new FileStream("C:\\1.png", FileMode.OpenOrCreate);  
RenderTargetBitmap rtb =   
                new RenderTargetBitmap((int)richTextBox1.ActualWidth, (int)richTextBox1.ActualHeight,   
                    96.0, 96.0, PixelFormats.Default);  
rtb.Render(richTextBox1);  
BitmapEncoder be = new PngBitmapEncoder();  
be.Frames.Add(BitmapFrame.Create(rtb));  
be.Save(pngfs);  
pngfs.Close(); 
http://www.cnblogs.com/TianFang/archive/2012/10/07/2714140.html
ima_zhan 2014-09-04
  • 打赏
  • 举报
回复
帮顶一个,我也要截图,不过是截当前显示的内容
dq19871123 2013-07-13
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
读取RichTextBox的内容到string,再将string的内容转换成图片 参考http://blog.sina.com.cn/s/blog_5421dfd20100vc89.html
读取内容到string我会的,后面的将string转成图片能详细说说么?我现在已经将内容读取到string text中了
Regan-lin 2013-07-13
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
读取RichTextBox的内容到string,再将string的内容转换成图片 参考http://blog.sina.com.cn/s/blog_5421dfd20100vc89.html
+1
EnForGrass 2013-07-13
  • 打赏
  • 举报
回复
读取RichTextBox的内容到string,再将string的内容转换成图片 参考http://blog.sina.com.cn/s/blog_5421dfd20100vc89.html
dq19871123 2013-07-13
  • 打赏
  • 举报
回复
引用 4 楼 benbenRH 的回复:
网上看到WebBrowser有这个方法DrawToBitmap,但是我在VS2005里面看了一下,好像我的没有这个方法。你看看你的有没有。

webBrowser1.DrawToBitmap(bitmap, new Rectangle(new Point(), webBrowser1.Size));
谷歌浏览器的内核WebKit有画到图片上去的,你可以引用一下他的控件,网上有C#版的,你google一下 如果真要用RichTextBox 1,你可以先截一部分,然后用代码滚动滚动条,在截图其他的,最后合起来。(个人觉得这个简单一些,可以试一下) 2,自己用GDI+重新画一次 ps:你是想像那些长微博一样的效果吗?
是的,就是想要那种效果,不管用户输入多少文本,都能全部输出到图像中。而且因为用到的是RichTextBox,所以输出图像中的文字也应该是带格式的富文本。
benbenRH 2013-07-13
  • 打赏
  • 举报
回复
网上看到WebBrowser有这个方法DrawToBitmap,但是我在VS2005里面看了一下,好像我的没有这个方法。你看看你的有没有。

webBrowser1.DrawToBitmap(bitmap, new Rectangle(new Point(), webBrowser1.Size));
谷歌浏览器的内核WebKit有画到图片上去的,你可以引用一下他的控件,网上有C#版的,你google一下 如果真要用RichTextBox 1,你可以先截一部分,然后用代码滚动滚动条,在截图其他的,最后合起来。(个人觉得这个简单一些,可以试一下) 2,自己用GDI+重新画一次 ps:你是想像那些长微博一样的效果吗?
在Windows系统,notepad.exe(记事本)是一个“经典的”、“简洁的”文本编辑器。这个软件,没有华丽的外观,也没有繁杂的功能,仅仅是一个文本编辑小软件。虽然经过Windows系统数十年的变换,但它却保持着永恒姿态,数十年来几乎不曾改变过。曾经,VS的经典DEMO,就有它的身影,一个新建的项目,就藏有一个新建的“记事本”。然而,在WPF的项目,“记事本”却消失的无影无踪,也许是很容易实现,也许是为了革新,而不愿再传承“经典”。确实,使用WPF技术再次让“记事本”复活,确实也是一件非常容易的事情。但是,如果,使用WPF技术,再搭配当下非常流行的MVVM模式呢?复活“记事本”的难度却陡然上升至很多WPF程序员为之默默叹气。而,MVVM模式是掌握WPF的最顶级技术,MVVM模式拥有的无尽的优势,让WPF相对于过往的编程模式来说,是一种革命性的创新,从而也成为大WPF项目必须的模式。但,学习难度。。。。。。在这个《WPF记事本开发详解》的课程,赵老师带领你在WPF,从零开始一步步构建MVVM模式,直到让你亲自以WPF+MVVM的方式,让这个经典的“记事本”软件从你的手“复活”。在课程,赵老师会详细讲解WPF和MVVM的各种技巧,让你从此爱上WPF+MVVM编程。

110,568

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧