123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- 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
- {
- /// <summary>
- /// 增加数据筛选
- /// </summary>
- /// <param name="SeriesBase">Series</param>
- /// <param name="columnName">列名称</param>
- /// <param name="value">列名称对应的筛选数值</param>
- /// <param name="dataFilterCondition">DataFilterCondition枚举</param>
- public static void AddDataFilter(this SeriesBase series, string columnName, object value, DataFilterCondition dataFilterCondition)
- {
- //series.DataFilters.Add(new DataFilter(columnName, value.GetType().FullName, dataFilterCondition, value));
- }
- /// <summary>
- /// 设置X轴Lable角度
- /// </summary>
- /// <param name="chart">ChartControl</param>
- /// <param name="angle">角度</param>
- public static void SetXLableAngle(this ChartControl chart, int angle)
- {
- XYDiagram _xyDiagram = (XYDiagram)chart.Diagram;
- if (_xyDiagram != null)
- _xyDiagram.AxisX.Label.Angle = angle;
- }
- /// <summary>
- /// 设置Y轴Lable角度
- /// </summary>
- /// <param name="chart">ChartControl</param>
- /// <param name="angle">角度</param>
- public static void SetYLableAngle(this ChartControl chart, int angle)
- {
- XYDiagram _xyDiagram = (XYDiagram)chart.Diagram;
- _xyDiagram.AxisY.Label.Angle = angle;
- }
- /// <summary>
- /// 设置ColorEach
- /// </summary>
- /// <param name="chart">ChartControl</param>
- /// <param name="colorEach">是否设置成ColorEach</param>
- public static void SetColorEach(this Series series, bool colorEach)
- {
- SeriesViewColorEachSupportBase colorEachView = (SeriesViewColorEachSupportBase)series.View;
- if (colorEachView != null)
- {
- colorEachView.ColorEach = colorEach;
- }
- }
- /// <summary>
- /// 设置是否显示十字标线
- /// </summary>
- /// <param name="chart">ChartControl</param>
- /// <param name="crosshair">是否显示十字标线</param>
- 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;
- }
- /// <summary>
- /// 新增ChartControl的Title文字
- /// </summary>
- /// <param name="chart">ChartControl</param>
- /// <param name="title">Title文字</param>
- public static void AddTitle(this ChartControl chart, string title)
- {
- ChartTitle _title = new ChartTitle();
- _title.Text = title;
- chart.Titles.Add(_title);
- }
- /// <summary>
- /// 饼状Series设置成百分比显示
- /// </summary>
- /// <param name="series">Series</param>
- 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%}";
- }
- }
- /// <summary>
- /// 将X轴格式化成时间轴
- /// </summary>
- /// <param name="chart">ChartControl</param>
- /// <param name="dateTimeMeasureUnit">X轴刻度单位</param>
- /// <param name="dateTimeGridAlignment">X轴刻度间距的单位</param>
- 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;
- }
- }
- /// <summary>
- /// 将X轴格式化成时间轴
- /// </summary>
- /// <param name="chart">ChartControl</param>
- /// <param name="dateTimeMeasureUnit">X轴刻度单位</param>
- /// <param name="dateTimeGridAlignment">X轴刻度间距的单位</param>
- /// <param name="formatString">时间格式;eg:yyyy-MM</param>
- 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;
- }
- }
- }
- }
|