本文实例讲述了DevExpress之ChartControl的SeriesTemplate用法,分享给大家供大家参考。具体方法如下:
关键代码如下:
using System.Data;
using System.Windows.Forms;
using CSharpUtilHelpV2;
using DevExpress.XtraCharts;
namespace DevExpressChart
{
public partial class winGsp : Form
{
public winGsp()
{
InitializeComponent();
}
static readonly string AccessFullPath = string.Format(@"{0}\gsp.mdb", AppDomain.CurrentDomain.BaseDirectory);
static DataTable GspList = null;
AccessUtilsV2 AccessHelper = null;
private void winGsp_Load(object sender, EventArgs e)
{
AccessHelper = new AccessUtilsV2(AccessFullPath);
GspList = AccessHelper.ExecuteDataTable("select * from Gsp", null);
BuilderDevChart();
}
private void BuilderDevChart()
{
if (GspList != null)
{
chartControl1.SeriesDataMember = "Year";
chartControl1.SeriesTemplate.ArgumentDataMember = "Region";
chartControl1.SeriesTemplate.ValueDataMembers.AddRange(new string[] { "GSP" });
chartControl1.SeriesNameTemplate.BeginText = "GSP in ";
chartControl1.DataSource = GspList;
chartControl1.SetXLableAngle(-35);
chartControl1.SetCrosshair(true);
chartControl1.Legend.Direction = LegendDirection.LeftToRight;
chartControl1.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
chartControl1.Legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;
chartControl1.AddTitle("GSP List");
}
}
}
}
using DevExpress.XtraCharts;
namespace DevExpressChart
{
public static class ChartUtils
{
///
/// 增加数据筛选
///
/// Series
/// 列名称
/// 列名称对应的筛选数值
/// DataFilterCondition枚举
public static void AddDataFilter(this SeriesBase series, string columnName, object value, DataFilterCondition dataFilterCondition)
{
series.DataFilters.Add(new DataFilter(columnName, value.GetType().FullName, dataFilterCondition, value));
}
///
/// 设置X轴Lable角度
///
/// ChartControl
/// 角度
public static void SetXLableAngle(this ChartControl chart, int angle)
{
XYDiagram _xyDiagram = (XYDiagram)chart.Diagram;
if (_xyDiagram != null)
_xyDiagram.AxisX.Label.Angle = angle;
}
///
/// 设置Y轴Lable角度
///
/// ChartControl
/// 角度
public static void SetYLableAngle(this ChartControl chart, int angle)
{
XYDiagram _xyDiagram = (XYDiagram)chart.Diagram;
_xyDiagram.AxisY.Label.Angle = angle;
}
///
/// 设置ColorEach
///
/// ChartControl
/// 是否设置成ColorEach
public static void SetColorEach(this Series series, bool colorEach)
{
SeriesViewColorEachSupportBase colorEachView = (SeriesViewColorEachSupportBase)series.View;
if (colorEachView != null)
{
colorEachView.ColorEach = colorEach;
}
}
///
/// 设置是否显示十字标线
///
/// ChartControl
/// 是否显示十字标线
public static void SetCrosshair(this ChartControl chart, bool crosshair)
{
chart.CrosshairEnabled = crosshair ? DefaultBoolean.True : DefaultBoolean.False;
chart.CrosshairOptions.ShowArgumentLabels = crosshair;
chart.CrosshairOptions.ShowArgumentLine = crosshair;
chart.CrosshairOptions.ShowValueLabels = crosshair;
chart.CrosshairOptions.ShowValueLine = crosshair;
}
///
/// 新增ChartControl的Title文字
///
/// ChartControl
/// Title文字
public static void AddTitle(this ChartControl chart, string title)
{
ChartTitle _title = new ChartTitle();
_title.Text = title;
chart.Titles.Add(_title);
}
///
/// 饼状Series设置成百分比显示
///
/// Series
public static void SetPiePercentage(this Series series)
{
if (series.View is PieSeriesView)
{
((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true;
((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Percent;
((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
}
}
}
}
运行效果:
希望本文所述对大家的C#程序设计有所帮助。