using DevExpress.Utils;
using DevExpress.XtraCharts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FocasCncCollect.Helper
{
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)
{
#region 过时
//((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true;
//((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Percent;
//((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
#endregion
series.Label.TextPattern = "{A:0.00%}";
}
}
///
/// 将X轴格式化成时间轴
///
/// ChartControl
/// X轴刻度单位
/// X轴刻度间距的单位
public static void SetTimeAxisX(this ChartControl chart, DateTimeMeasureUnit dateTimeMeasureUnit, DateTimeGridAlignment dateTimeGridAlignment)
{
XYDiagram _diagram = (XYDiagram)chart.Diagram;
if (_diagram != null)
{
_diagram.AxisX.DateTimeScaleOptions.MeasureUnit = dateTimeMeasureUnit;
_diagram.AxisX.DateTimeScaleOptions.GridAlignment = dateTimeGridAlignment;
}
}
///
/// 将X轴格式化成时间轴
///
/// ChartControl
/// X轴刻度单位
/// X轴刻度间距的单位
/// 时间格式;eg:yyyy-MM
public static void SetTimeAxisX(this ChartControl chart, DateTimeMeasureUnit dateTimeMeasureUnit, DateTimeGridAlignment dateTimeGridAlignment, string formatString)
{
XYDiagram _diagram = (XYDiagram)chart.Diagram;
if (_diagram != null)
{
_diagram.AxisX.DateTimeScaleOptions.MeasureUnit = dateTimeMeasureUnit;
_diagram.AxisX.DateTimeScaleOptions.GridAlignment = dateTimeGridAlignment;
//_diagram.AxisX.DateTimeOptions.Format = DateTimeFormat.Custom;
_diagram.AxisX.Label.TextPattern = formatString;
}
}
}
}