Demo of Microsoft Chart Controls for Microsoft .NET Framework 3.5
控件介绍
Demo展示
主要代码
代码
/*
* author:Joey Zhao
* date:2010-8-18
* describe: a simple demo of MsChart control
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace MsChartDemo
{
public partial class FormChart : Form
{
private int _maxXValue;//横坐标最大值
private int _maxYValue;//纵坐标最大值
private SeriesChartType _chartType = SeriesChartType.Column;//显示样式
private bool _show3dStyle;//是否显示3D效果
private string _labelStyle = "Auto";//lableStyle用户属性值
private List<Entity> m_listXrayFlux = new List<Entity>();//假数据,测试用
//构造函数
public FormChart()
{
this.InitializeComponent();
_maxXValue = 10;
_maxYValue = 100;
this.InitControls();
this.BindData();
}
//绑定数据
private void BindData()
{
//绑定Series1
Random random = new Random();
for (int i = 0; i < 10; i++)
{
this.chart1.Series[0].Points.AddY(random.Next(0, 100));
}
//绑定Series3,Series3
List<MyEntity> list = new List<MyEntity>();
MyEntity ent = null;
for (int i = 0; i < 20; i++)
{
ent = new MyEntity();
ent.X = i;
ent.Y = random.Next(0, 100);
ent.Z = random.Next(0, 100);
list.Add(ent);
}
this.chart1.DataSource = list;
this.chart1.Series[2].XValueMember = "X";
this.chart1.Series[2].YValueMembers = "Y";
this.chart1.Series[1].XValueMember = "X";
this.chart1.Series[1].YValueMembers = "Z";
}
//初始化控件
private void InitControls()
{
//
//trackBarX控件
//
this.trackBarX.Minimum = _maxXValue;
this.trackBarX.Maximum = 100;
this.trackBarX.ValueChanged += delegate(object o, EventArgs e)
{
_maxXValue = this.trackBarX.Value;
this.UpDateSetting();
};
//
//trackBarY控件
//
this.trackBarY.Minimum = _maxYValue;
this.trackBarY.Maximum = 500;
this.trackBarY.ValueChanged += delegate(object o, EventArgs e)
{
_maxYValue = this.trackBarY.Value;
this.UpDateSetting();
};
//
//comboBoxStyle控件
//
this.comboBoxStyle.DropDownStyle = ComboBoxStyle.DropDownList;
string[] array = Enum.GetNames(typeof(SeriesChartType));
for (int i = 0; i < array.Length; i++)
{
this.comboBoxStyle.Items.Add(array[i]);
}
this.comboBoxStyle.Text = SeriesChartType.Column.ToString();
this.comboBoxStyle.SelectedIndexChanged += delegate(object o, EventArgs e)
{
if (this.comboBoxStyle.Text == string.Empty)
{
return;
}
_chartType = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), this.comboBoxStyle.Text);
this.UpDateSetting();
};
//
//ComboBoxLableStyle控件
//
this.comboBoxLableStyle.Items.AddRange(
new object[] {"Auto", "Top", "Bottom", "Right",
"Left", "TopLeft", "TopRight", "BottomLeft", "BottomRight", "Center" });
this.comboBoxLableStyle.SelectedIndex = 0;
this.comboBoxLableStyle.DropDownStyle = ComboBoxStyle.DropDownList;
this.comboBoxLableStyle.SelectedIndexChanged += delegate(object o, EventArgs e)
{
_labelStyle = this.comboBoxLableStyle.Text;
this.UpDateSetting();
};
//
//Chart控件
//
this.chart1.Series[0].IsValueShownAsLabel = true;
this.chart1.Series[1].IsValueShownAsLabel = true;
this.chart1.ChartAreas[0].AxisX.Title = "ChartArea1";
this.chart1.ChartAreas[1].AxisX2.Title = "ChartArea2";
this.chart1.Series[0].XAxisType = AxisType.Secondary;//坐标样式
this.chart1.Series[0].YAxisType = AxisType.Secondary;//坐标样式
//
//3D按钮
//
this.button3D.Click += delegate(object o, EventArgs e)
{
_show3dStyle = !_show3dStyle;
this.UpDateSetting();
};
}
//更新Chart控件
private void UpDateSetting()
{
foreach (var item in this.chart1.Series)
{
item.ChartType = _chartType;
item["LabelStyle"] = _labelStyle;
}
this.chart1.ChartAreas[0].AxisX2.Maximum = _maxXValue;
this.chart1.ChartAreas[0].AxisY2.Maximum = _maxYValue;
this.chart1.ChartAreas[1].AxisX.Maximum = _maxXValue;
this.chart1.ChartAreas[1].AxisY.Maximum = _maxYValue;
this.chart1.ChartAreas[0].Area3DStyle.Enable3D = _show3dStyle;
this.chart1.ChartAreas[1].Area3DStyle.Enable3D = _show3dStyle;
}
}
class MyEntity
{
public int X
{
get;
set;
}
public int Y
{
get;
set;
}
public int Z
{
get;
set;
}
}
}
/*
* author:Joey Zhao
* date:2010-8-18
* describe: a simple demo of MsChart control
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace MsChartDemo
{
public partial class FormChart : Form
{
private int _maxXValue;//横坐标最大值
private int _maxYValue;//纵坐标最大值
private SeriesChartType _chartType = SeriesChartType.Column;//显示样式
private bool _show3dStyle;//是否显示3D效果
private string _labelStyle = "Auto";//lableStyle用户属性值
private List<Entity> m_listXrayFlux = new List<Entity>();//假数据,测试用
//构造函数
public FormChart()
{
this.InitializeComponent();
_maxXValue = 10;
_maxYValue = 100;
this.InitControls();
this.BindData();
}
//绑定数据
private void BindData()
{
//绑定Series1
Random random = new Random();
for (int i = 0; i < 10; i++)
{
this.chart1.Series[0].Points.AddY(random.Next(0, 100));
}
//绑定Series3,Series3
List<MyEntity> list = new List<MyEntity>();
MyEntity ent = null;
for (int i = 0; i < 20; i++)
{
ent = new MyEntity();
ent.X = i;
ent.Y = random.Next(0, 100);
ent.Z = random.Next(0, 100);
list.Add(ent);
}
this.chart1.DataSource = list;
this.chart1.Series[2].XValueMember = "X";
this.chart1.Series[2].YValueMembers = "Y";
this.chart1.Series[1].XValueMember = "X";
this.chart1.Series[1].YValueMembers = "Z";
}
//初始化控件
private void InitControls()
{
//
//trackBarX控件
//
this.trackBarX.Minimum = _maxXValue;
this.trackBarX.Maximum = 100;
this.trackBarX.ValueChanged += delegate(object o, EventArgs e)
{
_maxXValue = this.trackBarX.Value;
this.UpDateSetting();
};
//
//trackBarY控件
//
this.trackBarY.Minimum = _maxYValue;
this.trackBarY.Maximum = 500;
this.trackBarY.ValueChanged += delegate(object o, EventArgs e)
{
_maxYValue = this.trackBarY.Value;
this.UpDateSetting();
};
//
//comboBoxStyle控件
//
this.comboBoxStyle.DropDownStyle = ComboBoxStyle.DropDownList;
string[] array = Enum.GetNames(typeof(SeriesChartType));
for (int i = 0; i < array.Length; i++)
{
this.comboBoxStyle.Items.Add(array[i]);
}
this.comboBoxStyle.Text = SeriesChartType.Column.ToString();
this.comboBoxStyle.SelectedIndexChanged += delegate(object o, EventArgs e)
{
if (this.comboBoxStyle.Text == string.Empty)
{
return;
}
_chartType = (SeriesChartType)Enum.Parse(typeof(SeriesChartType), this.comboBoxStyle.Text);
this.UpDateSetting();
};
//
//ComboBoxLableStyle控件
//
this.comboBoxLableStyle.Items.AddRange(
new object[] {"Auto", "Top", "Bottom", "Right",
"Left", "TopLeft", "TopRight", "BottomLeft", "BottomRight", "Center" });
this.comboBoxLableStyle.SelectedIndex = 0;
this.comboBoxLableStyle.DropDownStyle = ComboBoxStyle.DropDownList;
this.comboBoxLableStyle.SelectedIndexChanged += delegate(object o, EventArgs e)
{
_labelStyle = this.comboBoxLableStyle.Text;
this.UpDateSetting();
};
//
//Chart控件
//
this.chart1.Series[0].IsValueShownAsLabel = true;
this.chart1.Series[1].IsValueShownAsLabel = true;
this.chart1.ChartAreas[0].AxisX.Title = "ChartArea1";
this.chart1.ChartAreas[1].AxisX2.Title = "ChartArea2";
this.chart1.Series[0].XAxisType = AxisType.Secondary;//坐标样式
this.chart1.Series[0].YAxisType = AxisType.Secondary;//坐标样式
//
//3D按钮
//
this.button3D.Click += delegate(object o, EventArgs e)
{
_show3dStyle = !_show3dStyle;
this.UpDateSetting();
};
}
//更新Chart控件
private void UpDateSetting()
{
foreach (var item in this.chart1.Series)
{
item.ChartType = _chartType;
item["LabelStyle"] = _labelStyle;
}
this.chart1.ChartAreas[0].AxisX2.Maximum = _maxXValue;
this.chart1.ChartAreas[0].AxisY2.Maximum = _maxYValue;
this.chart1.ChartAreas[1].AxisX.Maximum = _maxXValue;
this.chart1.ChartAreas[1].AxisY.Maximum = _maxYValue;
this.chart1.ChartAreas[0].Area3DStyle.Enable3D = _show3dStyle;
this.chart1.ChartAreas[1].Area3DStyle.Enable3D = _show3dStyle;
}
}
class MyEntity
{
public int X
{
get;
set;
}
public int Y
{
get;
set;
}
public int Z
{
get;
set;
}
}
}
主要概念
- ChartArea:包括一组到两组横纵坐标,一个或多个Series放在CharArea上。一个Chart控件可以包含多个ChartArea
- Series:一组数据,包含了构成图形的一系列坐标点
欢迎转载,转载请注明出处