DevExpress之ChartControl实现柱状图演示实例

 更新时间:2014年10月22日 09:35:37   投稿:shichen2014  
这篇文章主要介绍了DevExpress中ChartControl实现柱状图演示方法,实例展示了相关绘图函数的具体用法,具有一定的实用价值,需要的朋友可以参考下

本文实例讲述了DevExpress中ChartControl实现柱状图演示的方法。分享给大家供大家参考。具体实现方法如下:

关键代码如下:

复制代码 代码如下:
using System;
using System.Data;
using System.Windows.Forms;
using CSharpUtilHelpV2;
using DevExpress.XtraCharts;

namespace DevExpressChart
{
    public partial class winProduct : Form
    {
        public winProduct()
        {
            InitializeComponent();
        }
        static readonly string AccessFullPath = string.Format(@"{0}\Northwind.MDB", AppDomain.CurrentDomain.BaseDirectory);
        static DataTable ProductList = null;
        AccessUtilsV2 AccessHelper = null;
        private void winChat_Load(object sender, EventArgs e)
        {
            AccessHelper = new AccessUtilsV2(AccessFullPath);
            ProductList = AccessHelper.ExecuteDataTable("select * from Products", null);
            BuilderDevChart();
        }
        private void BuilderDevChart()
        {
            if (ProductList != null)
            {
                Series _barSeries = new Series("测试", ViewType.Bar);
                _barSeries.ArgumentDataMember = "ProductName";//x轴
                _barSeries.ValueDataMembers[0] = "UnitPrice";//Y轴
                _barSeries.DataSource = ProductList;
                _barSeries.AddDataFilter("CategoryID", 4, DataFilterCondition.Equal);
                _barSeries.SetColorEach(true);
                chartControl1.Series.Add(_barSeries);
                _barSeries.LegendPointOptions.PointView = PointView.ArgumentAndValues;

                //chartControl1.SeriesDataMember = "UnitPrice";
                //chartControl1.SeriesTemplate.ValueDataMembers[0] = "UnitPrice";
                //chartControl1.SeriesTemplate.ArgumentDataMember = "ProductName";
                //chartControl1.SeriesTemplate.ArgumentScaleType = ScaleType.Qualitative;
                //chartControl1.SeriesTemplate.AddDataFilter("CategoryID", 4, DataFilterCondition.Equal);
                //chartControl1.SeriesTemplate.LegendPointOptions.PointView = PointView.ArgumentAndValues;
                chartControl1.SetXLableAngle(-35);
                chartControl1.SetCrosshair(true);

                chartControl1.Legend.Direction = LegendDirection.LeftToRight;
                chartControl1.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
                chartControl1.Legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;
                chartControl1.DataSource = ProductList;

                chartControl1.AddTitle("Product List");
                //--------------------------
            }
        }
    }
}

复制代码 代码如下:
using DevExpress.Utils;
using DevExpress.XtraCharts;

namespace DevExpressChart
{
    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)
            {
                ((PiePointOptions)series.PointOptions).PercentOptions.ValueAsPercent = true;
                ((PiePointOptions)series.PointOptions).ValueNumericOptions.Format = NumericFormat.Percent;
                ((PiePointOptions)series.PointOptions).ValueNumericOptions.Precision = 0;
            }
        }
    }
}


运行效果如下图所示:

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • C#学习基础概念二十五问

    C#学习基础概念二十五问

    C#学习基础概念二十五问...
    2007-04-04
  • 在WPF中实现全局快捷键功能

    在WPF中实现全局快捷键功能

    这篇文章介绍了在WPF中实现全局快捷键功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# WinForm实现鼠标穿透功能

    C# WinForm实现鼠标穿透功能

    在WinForm开发时,会用到这样一个场景,给屏幕增加水印Logo,但不影响画面的操作,这里就会用到鼠标穿透功能,下面我们就来学习一下鼠标穿透功能的具体实现吧
    2023-11-11
  • 初步认识C#中的Lambda表达式和匿名方法

    初步认识C#中的Lambda表达式和匿名方法

    这篇文章主要介绍了初步认识C#中的Lambda表达式和匿名方法,本文着重讲解Lambda表达式和匿名方法的基础知识,需要的朋友可以参考下
    2015-01-01
  • C#实现简单文本编辑器

    C#实现简单文本编辑器

    这篇文章主要为大家详细介绍了C#实现简单文本编辑器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • C#基于Socket实现多人聊天功能

    C#基于Socket实现多人聊天功能

    这篇文章主要为大家详细介绍了C#基于Socket实现多人聊天功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 利用C#实现获取当前设备硬件信息

    利用C#实现获取当前设备硬件信息

    这篇文章主要为大家详细介绍了如何利用C#实现获取当前设备硬件信息的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-03-03
  • C#连接SQL数据库和查询数据功能的操作技巧

    C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧
    2021-05-05
  • Unity实现UI渐变效果

    Unity实现UI渐变效果

    这篇文章主要为大家详细介绍了Unity实现UI渐变效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • C#动态执行字符串(动态创建代码)的实例代码

    C#动态执行字符串(动态创建代码)的实例代码

    在编写C#程序的时候,有时我们需要动态生成一些代码并执行。然而C#不像JavaScript有一个Eval函数,可以动态的执行代码。所有这些功能都要我们自己去完成
    2013-03-03

最新评论