DEV控件之ChartControl用法

article/2025/11/5 18:15:51

一、总体概述

这个控件包含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

转载于:https://www.cnblogs.com/DamonOnly/p/3668005.html


http://chatgpt.dhexx.cn/article/oeMvp7wP.shtml

相关文章

C# DevExpress组件 - ChartControl图表控件

C# DevExpress组件 - ChartControl图表控件学习-整体感知(一) 1 逻辑框架图梳理 以逻辑框架图,进行代码验证 2 代码实现 2.1 实现内容 代码实现:添加一个ChartControl图表控件,并提供显示三个变量显示在三个位置 …

C# DevExpress ChartControl用法总结

C# DevExpress ChartControl用法总结 ₯近期使用C#DevExpress制作看板时用到过的ChartControl中的相关图表,在此做个记录(未完)。 1、Bar(柱形图) Series series1 new Series("日期", ViewType.Bar) …

DevExpress chartControl 基本结构说明

chartControl 使用教程及chart数据绑定 DevExpress说明ChartControl 结构series 主要Diagram 主要Chart TitlesLegendsAnnotations DevExpress说明 DevExpress是一个功能强大的跨平台控件库,支持winform、VB、WPF、UWP、asp等等, chart图是软件开发中常…

Dev中ChartControl——属性熟悉与简单应用

图表元素之间的关系&#xff1a; 根据DevExpress帮助文档中描述&#xff1a; 创建点图&#xff1a; 1、创建图表 /// <summary> /// 创建图表 /// </summary> private void CreatChart() {// Create a new chart.图表控件ChartControl pointChart new ChartCon…

运用getParameterNames()方法和getParameterValues()方法获取请求参数名称和内容

一.例子代码&#xff1a; 填写信息页面&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Insert title here</title> </head> <body> <form action"request_demo04.jsp" m…

使用 String[] values = request.getParameterValues(key);出现的问题 ,Ajax Post 提交数组参数后台无法接收

ajax向服务器提交数组参数多了一个中括号 String[] values request.getParameterValues(key); $.post({}) 直接传递数组会导致如下情况 // 使用一下js会导致如图这种情况var ids [];$(input[name"ids"]:checked).each(function(){ids.push($(this).val());})$.po…

springboot 防止xss 和sql 注入 改写 http 请求 getParameter,getParameterValues,getHeader等方法 有点东西

目录 1.springboot 启动类 引入 过滤器配置 2.过滤器 3.XssAndSqlHttpServletRequestWrapper包装器 包装类 4.修改验证登录代码 这里只写了基础的 了解意思即可 5.测试内容 6.测试结果 7.反黑客小介绍&#xff08;黑客大哥们好小弟这没啥大用O(∩_∩)O~&#xff0c;但…

java web中request.getParameterValues()和request.getParameter()异同

JavaWeb中获取表单的多行值采用request.getParameterValues(&#xff09;方法&#xff0c;request.getParameter()方法获取单个值 <!DOCTYPE html> <html lang"zh_CN"> <head><meta charset"UTF-8"><title>Title</title…

Jsp中getParameter、getParameterValues、getParameterNames和getParameterMap用法详解

以下是一个简单的jsp注册页面&#xff0c;从前端提交的数据 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"re…

req.getParameterValues 输出前端乱码

前端页面 <% page contentType"text/html;charsetUTF-8" language"java" %> <html> <head><title>登录</title> </head> <body> <% page pageEncoding"UTF-8" %> <div style"text-ali…

jsp内置对象request——getParameterValues的使用

文章目录 前言一、getParameterValues是什么二、使用步骤 1.通过表单传入2.使用数组存取读入表单结果总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、getParameterValues是什么 当控件中有多个选项时&#xff0c;要取到所有值可调用该方法&am…

initWithFormat 和stringWithFormat的区别

差别&#xff1a; 1、initWithFormat是实例办法 只能经由过程 NSString* str [[NSString alloc] initWithFormat:&#xff20;"&#xff05;&#xff20;"&#xff0c;&#xff20;"Hello World"] 调用&#xff0c;然则必须手动release来开释内存资料 2、…

C# string Format

使用C#格式化字符串 转载自博客园&#xff0c;原文连接&#xff1a;https://www.cnblogs.com/FlyingBread/archive/2007/01/18/620287.html&#xff0c;向原文作者献上敬意 1 前言 如果你熟悉Microsoft Foundation Classes&#xff08;MFC&#xff09;的CString&#xff0c;…

NSString函数stringWithFormat与stringWithString的比较

我们经常会初始化一些string使用NSString的stringWithString函数 但使用时发现了一个stringWithString的问题&#xff0c;如图 当参数是nil时&#xff0c;stringWithString会crash&#xff0c;所以使用时必须验证参数不是nil 相比较stringWithFormat就不会crash但返回的str也…

stringWithFormat:用法及注意事项

在ObjectiveC中NSString中有一个 stringWithFormat&#xff1a;方法 常见的输出方式&#xff1a; NSString *height; height [NSString stringWithFormat:"Your height is %d feet, %d inches.",5,11]; NSLog("%",height); 输出结果&#xff1a; 2013-04-…

虚拟机VirtualBox下载与安装、安装Ubuntu超详细图文步骤,对一些配置问题也有所写。

对于机器学习和深度学习来说&#xff0c;Linux系统是必不可少的。而我们在只是学习当中一般不会去重装一个Linux系统&#xff0c;而是去使用虚拟机来使用Linux系统。在VMware与VirtualBox这两款虚拟机的体验上&#xff0c;个人更偏向于后者&#xff0c;因为它所占内存更小&…

安装Windowsxp虚拟机

1.打开VMware&#xff0c;选择创建新的虚拟机&#xff0c;微软windows系统选择典型&#xff0c;而linux系统选择自定义&#xff1a; 2.选择稍后安装操作系统&#xff1a; 3.下一步选择相应合适的版本&#xff0c;选择存放位置&#xff1a; 4.选择合适大小的硬盘给虚拟机&…

在虚拟机VMware上安装XP系统

由于最近在学习uc/os-ii操作系统需要用到Borland C 3.1版本的软件&#xff0c;但是由于本人笔记本电脑的系统为Windows7 64位操作系统&#xff0c;与BC3.1不兼容&#xff0c;又不想直接换成XP系统&#xff0c;所以想在虚拟机VMware上安装XP&#xff0c;刚开始在网上搜了很多教程…

VirtualBox安装

1、VirtualBox安装 运行安装程序&#xff0c;一直下一步即可。如果不想安装到C盘&#xff0c;可以自己选盘符。 注意&#xff1a;软件开发安装所有程序时&#xff0c;不要安装到有中文或特殊符号的路径下。 2、安装操作系统 点击新建&#xff0c;弹出如下对话框 名称&…

VirtualBox虚拟机安装

一、宿主机(物理机)要求 宿主机建议内存大于4G&#xff0c;cpu至少4个 二、下载virtualBox https://www.virtualbox.org/wiki/Downloads 下载的安装包&#xff0c;默认安装即可(也可指定目录安装) 三、下载系统镜像 可以参考另外一篇各种ISO镜像 四、VirtualBox安装虚拟…