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);
}
}
}
效果图:
Demo 下载:
VS2010 + Studio for WPF