DEV控件之ChartControl用法

一、总体概述

这个控件包含3层,最外面的chartControl层、中间的XYDiagram层、最里面的Series层。功能非常强大,但同时使用起来也相对复杂,需要各个层之间相互协调设置才能达到自己想要的效果。

二、chartControl层

像DEV的其它控件一样,这一层之相当于是一个壳子,我们平时在这里面设置的属性也不多。而且都是些常规属性,比如大小、停靠方式等等。

三、XYDiagram层

这一层就比较关键了,主要是涉及到XY轴的显示方式和滚动条显示等。并且坐标轴的显示方式和数据类型也有很大的关系,主要包括3种类型,数据类型是根据添加到Series中的数据类型决定的,主要属性是ArgumentScaleType。所以涉及到3种不同的设置方式。

  1. 当坐标轴的数据类型是数字时

  2. 当前数据类型是字符串时

其它设置同上,主要是要想出现滚动条,在设计面板中还不能实现,必须通过代码设置

DevExpress.XtraCharts.XYDiagram xyDiagram1 = (XYDiagram)this.chartControl1.Diagram;

xyDiagram1.AxisX.Range.MaxValueInternal = 3; //这个属性在设计视图里面是看不到的,只有代码里面才可以设置。

xyDiagram1.AxisX.Range.MinValueInternal = -0.5D;

  3.当前数据类型是时间

AxisX ax = (XYDiagram)chartControl1.Diagram;
ax.GridSpacingAuto = false;
ax.DateTimeMeasureUnit = DateTimeMeasurementUnit.Minute;//这个可以根据你自己的情况设置
ax.DateTimeGridAlignment = DateTimeMeasurementUnit.Second; //这个是间隔单位
ax.GridSpacing = 10; // 每10秒为一个间隔。

三、series层

根据选择的类型图不一样,设置也不尽相同。

  1.棒状图

其实说起棒状图,很多人都在乎如何固定棒状图的宽度,其实它这里是不可以固定具体的像素宽度,只能根据左边轴当前的显示范围来确定显示的比例,比如当前显示的范围是3,宽度比例是0.6,那么显示的就比较适中,如果是1,则显示的比较宽一点,而且间隔也变小了。主要宽度属性为:

BarSeriesView sv1 = (BarSeriesView)S1.View;

sv1.BarWidth = 1;

四、相关代码实现

#region 仅供参考(不需要)
            //控制X、Y轴显示
            //XYDiagram diagram = (XYDiagram)chartControl.Diagram;
            //diagram.AxisX.Label.Staggered = true;
            //diagram.AxisY.Label.BeginText = "Axis value = ";
            //diagram.AxisY.Label.Angle = -30;
            //diagram.AxisY.Label.Antialiasing = true;

//XYDiagram diagram = (XYDiagram)chartControl.Diagram;
            //diagram.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Second;

            //diagram.AxisX.DateTimeOptions.Format =
DateTimeFormat.Custom; diagram.AxisX.DateTimeOptions.FormatString =
"HH:mm:ss";

//((XYDiagram)myChartControl.Diagram).AxisX.Interlaced = true;
            //((XYDiagram)myChartControl.Diagram).AxisX.GridSpacing = 10;
            //((XYDiagram)myChartControl.Diagram).AxisX.Label.Angle = -30;
            //((XYDiagram)myChartControl.Diagram).AxisX.Label.Antialiasing = true;
            //((XYDiagram)myChartControl.Diagram).AxisX.DateTimeOptions.Format = DateTimeFormat.MonthAndDay;

////XYDiagram xyDiagram1 = new XYDiagram();
            ////xyDiagram1.AxisX.Range.Auto = false; //要开启滚动条必须将其设置为false
            //////xyDiagram1.AxisX.Range.MaxValueInternal = 30.5D >
(cnt + 1) ? (cnt + 1) : 30.5D;//在不拉到滚动条的时候,X轴显示多个值,既固定的X轴长度。
            //////xyDiagram1.AxisX.Range.MinValueInternal = -0.5D;
            ////xyDiagram1.AxisX.Range.ScrollingRange.Auto = false;
            ////xyDiagram1.AxisX.MinorCount = 9; //显示X轴间隔数量
            ////xyDiagram1.AxisX.Tickmarks.MinorVisible = true;//是否显示X轴间隔
            //xyDiagram1.AxisY.MinorCount = 1;//显示Y轴间隔数量
            //xyDiagram1.AxisY.Tickmarks.MinorVisible = true;//是否显示Y轴间隔

//xyDiagram1.AxisX.Range.ScrollingRange.MaxValueSerializable = (cnt + 1).ToString();//整个X轴最多显示多多少个值
            // xyDiagram1.AxisX.Range.ScrollingRange.MinValueSerializable = "0";
            //xyDiagram1.AxisX.DateTimeMeasureUnit = DateTimeMeasurementUnit.Second;
            //xyDiagram1.AxisX.DateTimeOptions.Format = DateTimeFormat.Custom;
            //xyDiagram1.AxisX.DateTimeOptions.FormatString = "yyyy:MM:HH";
            //xyDiagram1.AxisX.Range.ScrollingRange.SideMarginsEnabled = true;//是否从X轴原点开始显示
            //xyDiagram1.AxisX.Range.SideMarginsEnabled = false;
            ////xyDiagram1.AxisX.VisibleInPanesSerializable = "-1";
            ////xyDiagram1.AxisY.NumericOptions.Format = DevExpress.XtraCharts.NumericFormat.Percent;//显示为百分数
            //xyDiagram1.AxisY.Range.Auto = false;
            ////xyDiagram1.AxisY.Range.MaxValueSerializable = "1.02";
            ////xyDiagram1.AxisY.Range.MinValueSerializable = "0.5";
            //xyDiagram1.AxisY.Range.ScrollingRange.SideMarginsEnabled = true;
            //xyDiagram1.AxisY.Range.SideMarginsEnabled = true;
            ////xyDiagram1.AxisY.VisibleInPanesSerializable = "-1";
            //xyDiagram1.EnableScrolling = true;//启用滚动条

//获取Diagram必须在ChartControl中已经加入了Series之后
            //((XYDiagram)chartControl.Diagram).Rotated = false;
            #endregion

//图标位置
            //myChartControl.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Right;
            //myChartControl.Legend.AlignmentVertical = LegendAlignmentVertical.Top;

//ChartTitle chartTitle = new ChartTitle();
            //chartTitle.Text = this.Text;//标题内容
            //chartTitle.TextColor = System.Drawing.Color.Black;//字体颜色
            //chartTitle.Font = new Font("Tahoma", 8);//字体类型字号
            //chartTitle.Dock = ChartTitleDockStyle.Bottom;//标题对齐方式
            //chartTitle.Alignment = StringAlignment.Far;
            //myChartControl.Titles.Clear();//清理标题
            //myChartControl.Titles.Add(chartTitle);//加载标题

//Series series1 = new Series(this.Text, ViewType.Spline);
            //series1.ArgumentScaleType = ScaleType.DateTime;//x轴类型
            //series1.ValueScaleType = ScaleType.Numerical;//y轴类型
            ////X轴的数据字段
            //series1.ArgumentDataMember = "StatisticsTime";
            ////Y轴的数据字段
            //series1.ValueDataMembers[0] = "StatisticsSum";
            ////定义线条上点的标识形状是否需要
            //((LineSeriesView)series1.View).LineMarkerOptions.Visible = false;
            ////定义线条上点的标识形状
            //((LineSeriesView)series1.View).LineMarkerOptions.Kind = MarkerKind.Circle;         

            ////不显示X、Y轴上面的交点的值
            //((PointSeriesLabel)series1.Label).Visible = false;
            ////线条的类型,虚线,实线
            //((LineSeriesView)series1.View).LineStyle.DashStyle = DashStyle.Solid

DEV控件之ChartControl 属性设置【转】的更多相关文章

  1. DEV控件GridControl常用属性设置

    1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...

  2. DEV控件GridControl常用属性设置(转)

      1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView. ...

  3. DEV控件之ChartControl用法

    一.总体概述 这个控件包含3层,最外面的chartControl层.中间的XYDiagram层.最里面的Series层.功能非常强大,但同时使用起来也相对复杂,需要各个层之间相互协调设置才能达到自己想 ...

  4. DEV控件之ChartControl用法 z

    一.总体概述 这个控件包含3层,最外面的chartControl层.中间的XYDiagram层.最里面的Series层.功能非常强大,但同时使用起来也相对复杂,需要各个层之间相互协调设置才能达到自己想 ...

  5. Dev控件-gridview的属性说明

    说明 Options OptionsBehavior 视图的行为选项 AllowIncrementalSearch 允许用户通过输入想得到的列值来定位行 AllowPartialRedrawOnScr ...

  6. dev设置子窗体的初始位置,grid控件表头的属性设置

    当在父窗体上弹出子窗体时,一般设置子窗体的初始位置是居中, //在需要展示子窗体的父窗体上写这段,注意必须设置在show方法之前Form2 f2 = new Form2(); f2.MdiParent ...

  7. c# Winform dev控件之ChartControl

    1.改变颜色 字体颜色 背景颜色 XYDiagram dia = chartControl1.Diagram as XYDiagram; dia.AxisX.Label.TextColor = Col ...

  8. 设置TextBox控件的TextMode属性

    我想在程式代碼中將TextBox控件的TextMode属性设置為Password,寫成TextBox1.TextMode=MultiLine和TextBox1.TextMode="Multi ...

  9. C#控件方法及属性大全,望补充

    C#控件及常用设计整理 1.窗体 常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. (2) WindowState属性: 用来获取或设置窗体的窗口状态 ...

随机推荐

  1. java 记录对象前后修改的内容(工具类)

    有时候业务需要,需记录一条记录的修改历史,但是不能为完成任务而硬编码,不靠谱 这种情况可以使用java反射来完成 对对象属性的描述可以通过自定义注解来完成,读取里面的属性进而记录修改历史. 在对象的属 ...

  2. ABP-Zero模块

    一.介绍 二.启动模版 三.功能 1,租户管理 2,版本管理 3,用户管理 4,角色管理 5,组织单位管理 6,权限管理 7,语言管理 8,Identity Server集成 一.介绍 1,Zero模 ...

  3. 【tarjan+SPFA】BZOJ1179-[Apio2009]Atm

    [题目大意] 给出一张有点权的有向图,已知起点和可以作为终点的一些点,问由起点出发,每条边和每个点可以经过任意多次,经过点的权值总和最大为多少. [思路] 由于可以走任意多次,显然强连通分量可以缩点. ...

  4. Java之多线程 Atomic(原子的)

    一.何谓Atomic? Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位.计算机中的Atomic是指不能分割成若干部分的意思.如果一段代码被认为是Atomic,则表示这段代码在执行过程中 ...

  5. 使用Automation将Azure SQL DB容灾到本地

    前段时间有个客户有如下需求,将Azure SQL Database数据库容灾到本地(备份频率1小时/次). 那么对于这样的需求,我们可以使用Azure Automation来实现自动化备份到本地. 大 ...

  6. SW-DP (Serial Wire Debug Port) Analyzer plugin for the Saleae Logic

    SW-DP (Serial Wire Debug Port) Analyzer plugin for the Saleae Logic The SW-DP protocol is described ...

  7. ARM LDR/STR, LDM/STM 指令

    这里比较下容易混淆的四条指令,已经在这4条指令的混淆上花费了很多精力,现在做个小结,LDR,STR,LDM,STM这四条指令, 关于LDM和STM的说明,见另外一个说明文件,说明了这两个文件用于栈操作 ...

  8. PHP项目收藏

    API接口管理系统 Github上的PHP资源汇总大全 Github.com上有哪些比较有趣的PHP项目 SOAP NuSOAP - SOAP Toolkit for PHP [官网] [教程] 通用 ...

  9. centos安装tomcat7

    转自:http://www.cnblogs.com/sixiweb/archive/2012/11/26/2789458.html 安装tomcat7: tomcat7下载主页: http://tom ...

  10. mmc生产任务分配问题续

    mmc生产任务分配问题续,本题目比上个题目难, 要注意的是,生产,销售,库存的关系, 生产+上月库存-销售=本月库存, 期初,生产=库存,销售没有.