在项目中我们经常会碰到需要将某些页面或者控件导出成图片的需求,例如将Chart导出.那么在Silverlight中,我们如何实现这样的功能呢.
在老外的论坛上找到了解决方案,将控件转成流,然后在进行绘图导出.算法来自老外的论坛,稍微做了些调整.以下主要介绍使用方法.
为了方便起见,我们建立一个文件夹存放要用到的三个类EditableImage.cs,PngEncoder.cs和ElementToPNG.cs,然后添加一个新页面,托入一个chart控件和一个button控件.
在按钮事件中添加如下代码即可实现导出功能:
ElementToPNG eTP =new ElementToPNG();
eTP.ShowSaveDialog(myChart);
eTP.ShowSaveDialog(myChart);
点击按钮后弹出对话框如下:
由于算法问题目前只能保存为png格式文件.
小窍门:
如果需要导出多个控件,可以将这些控件置于一个Canvas或者其他容器中,然后将该容器导出即可.
3个类文件 点这里下载