Studio for WPF:保存隐藏图表到图片

C1Chart 提供了SaveImage 方法,可以直接保存到 Bmp、Png、Gif、Jpeg、Tiff 和 Wmp格式的图片。一个常见的用户使用场景是 TabControl 中包含多个图表,用户需要在没有展示图表的情况下,一次性保存所有图表到图片。下面我们就来分享下实现方法:

发布于 2014/06/26 00:00

ComponentOne Enterprise

http://helpcentral.componentone.com/nethelp/c1wpfchart/">C1Chart 提供了

// create tabs with charts
for (int i = 0; i < cnt; i++)
{
charts<em class="bbcode-em"></em> = new C1Chart() {ChartType = ChartType.Line};
var values1 = new double[npts];
var values2 = new double[npts];
var values3 = new double[npts];
  
for (int j = 0; j < npts; j++)
{
    values1[j] = rnd.Next(100);
    values2[j] = rnd.Next(100);
    values3[j] = rnd.Next(100);
}
charts<em class="bbcode-em"></em>.Data.Children.Add(new DataSeries() {ValuesSource = values1, Label = "series1" });
charts<em class="bbcode-em"></em>.Data.Children.Add(new DataSeries() { ValuesSource = values2, Label = "series2" });
charts<em class="bbcode-em"></em>.Data.Children.Add(new DataSeries() { ValuesSource = values3, Label = "series3" });
charts<em class="bbcode-em"></em>.Palette = ColorGeneration.Solstice;
charts<em class="bbcode-em"></em>.Children.Add(new C1ChartLegend() { Title = "Chart " + i });
  
tabs.Items.Add(new TabItem() 
    { 
    Header = "Tab " + i,
    Content = new Grid() { Children = { charts<em class="bbcode-em"></em> } } 
    }
);
}

 

保存图表到图片

我们通过按钮点击事件保存所有图表到图片。需要使用图表的Arrange

    private void SaveBtn_Click(object sender, RoutedEventArgs e)
    {
        // use size of visible chart
        var sz = new Size(charts[0].ActualWidth, charts[0].ActualHeight);
        for (int i = 0; i < cnt; i++)
        {
        using (var file = File.Open("chart" + i +  ".jpg", FileMode.Create))
        {
            // two arranges is neccesary to perform chart layout
            charts[i].Arrange(new Rect(0, 0, sz.Width, sz.Height));
            charts[i].UpdateLayout();
            charts[i].SaveImage(file, ImageFormat.Jpeg);
        }
        }
    }

 

效果图:screenshot

Demo 下载:

VS2010 + Studio for WPF

 

ComponentOne Enterprise | 下载试用

ComponentOne 是一套专注于企业 .NET开发、支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含 300 多种 .NET开发控件,提供表格数据管理、数据可视化、报表和文档、日程安排、输入和编辑、导航和布局、系统提升工具等七大功能,被誉为“.NET开发的‘瑞士军刀’”。

ComponentOne 为您提供专业的产品咨询服务,并由技术支持工程师为您1对1解答。>> 发帖提问

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态