Chart作为微软提供绘制图表的控件,在刚开始使用时非常的迷茫,因为功能强大,涉及到的知识多,

一开始难以接收过来,但后天经过查找资料,耐心学习,终于还是有了一定的收获。

Chart相当于一个大的图纸,可以包含很多小的图纸ChartArea,一个ChartArea可以包含很多的Series,

Series即Point,画在ChartArea上的数据。

主要的思想就是添加Points的同时改变X轴的显示范围,以此来达到动态显示的目的。

代码解析:

Chart的相关设置

因为Chart控件是直接托入的,系统帮助初始化了,可以在对应的desiger.cs文件中找到。
还有事件的注册,属性等都可以在这个文件中找到。 //设置大小
MotorTestingChart.Height = 200;
MotorTestingChart.Width = 500; //设置在series上显示数值 Series是一个集合,需要有索引的方式指定
//MotorTestingChart.Series[0].IsValueShownAsLabel = true;//IsValueShowAsLable表示是否在图表的曲线上标出以标签的形式标出值 //设置Chart的边框样式
MotorTestingChart.BorderlineColor = Color.Blue;//边框颜色
MotorTestingChart.BorderlineDashStyle = ChartDashStyle.Solid;//边框的样式 Solid表示是实线
MotorTestingChart.BorderlineWidth = ;//边框的宽度 //拖入Chart控件会自带一个ChartArea
ChartArea mtxChartArea = MotorTestingChart.ChartAreas[];//获取ChartArea mtxChartArea.BackColor = Color.Lavender;//设置ChartArea的背景颜色
//X显示的最小值
mtxChartArea.AxisX.Minimum = ; //设置X轴的显示范围,在后续程序中将会用到
//X轴显示的最大值
mtxChartArea.AxisX.Maximum = ;
mtxChartArea.AxisY.Minimum = -;
mtxChartArea.AxisY.Maximum = ;
//X轴的标题
mtxChartArea.AxisX.Title = "时间";
//X轴的标题颜色
mtxChartArea.AxisX.TitleForeColor = Color.Red;
//X轴的刻度颜色
mtxChartArea.AxisX.LabelStyle.ForeColor = Color.Blue;
//指定自动轴的模式
mtxChartArea.AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount;
//设置轴的间隔
//chartArea.AxisX.Interval = 1;
mtxChartArea.AxisY.Title = "数值";
mtxChartArea.AxisY.TitleForeColor = Color.Red;
mtxChartArea.AxisY.LabelStyle.ForeColor = Color.Blue; #region X和Y轴的网格线 取消网格线
mtxChartArea.AxisX.MajorGrid = new Grid() { Enabled = false };
mtxChartArea.AxisY.MajorGrid = new Grid() { Enabled = false };
#endregion

//标题
Title mtTitle = new Title();
mtTitle.Name = "mtTitle";
mtTitle.Text = "飞行姿态"; //添加标题 MyIEqualityCompare为自定义的比较类,继承自IEqualityCompare接口
if (!MotorTestingChart.Titles.Contains<Title>(mtTitle, new MyIEqualityComparer<Title>()))
{
MotorTestingChart.Titles.Add(mtTitle);
} //设置滚动条
mtxChartArea.AxisX.ScrollBar.IsPositionedInside = false;
mtxChartArea.AxisX.ScrollBar.Enabled = false;
//Legend 图例
Legend mtLegend = new Legend("mtLegend");
//mtLegend.LegendStyle = LegendStyle.Table;
mtLegend.Title = "图例";
mtLegend.ForeColor = Color.Red;
mtLegend.BackColor = Color.HotPink;
if (!MotorTestingChart.Legends.Contains<Legend>(mtLegend, new MyIEqualityComparer<Legend>()))
{
MotorTestingChart.Legends.Add(mtLegend);
} //拖入Chart控件会自带一个Series
Series mtSeries = MotorTestingChart.Series[];//获取Series
mtSeries.Legend = "mtLegend";//绑定在那个图例中显示
mtSeries.LegendText = "mtxSeries";//在图例中显示的文字
mtSeries.Color = Color.Red;//线的颜色,同时也是所画图标的颜色,绑定在一起
mtSeries.ChartType=SeriesChartType.Spline;//设置Chart类型,就是以怎样的形式画图表 mtSerise.ChartArea=MotorTestingChart.ChartArea[0];//是通过Series来绑定ChartArea的

Timer定时器

这部分的代码的写在定时器注册的函数中。

Series series = GyroscoprChart.Series[0];//获取Series

series.Points.AddY(r.Next(1,100));//向Series的Points添加值

 if (num0 > )//num是用来统计Series.Points的个数的,因为在Chart的设置中设置了X轴显示的范围为:0到10,
{ //所以Series的点个数大于10个之后就改变X数值的显示范围,以此来达到实时显示的目的,同时因为Series的Point的添加也是跟随定时器的
//所以它们配合的非常好
gyrChartArea.AxisX.Minimum = gyrChartcount - ;
gyrChartArea.AxisX.Maximum = gyrChartcount; }

最新文章

  1. Django配合使用Jquery post方法
  2. DEDE后台登录和前台验证码不显示的解决方法
  3. js页面刷新之实现普通页面
  4. php中英文截取无乱码 包括全角下的字符
  5. 【风马一族_Java】9*9口诀
  6. 用JAVA写一个函数,功能例如以下: 随意给定一组数, 找出随意数相加之后的结果为35(随意设定)的情况
  7. Linux之read用法
  8. const和violate
  9. 在头文件声明全局变量和创建extern
  10. TensorFlow-谷歌深度学习库 用tfrecord写入读取
  11. 20165234 《Java程序设计》第九周学习总结
  12. python logging配置时间或大小轮转
  13. synchronized 和reentrantlock的优缺点
  14. python发送requests请求时,使用登录的token值,作为下一个接口的请求头信息
  15. .net图表之ECharts随笔02-字符云
  16. SqlServer代理作业
  17. C++ VS2013环境编译使用sqlite数据库全过程
  18. Java之NIO,BIO,AIO
  19. navicat 在写存储过程的时候总是说语法错误
  20. .Net平台技术介绍、C#语言

热门文章

  1. boost::any在降低模块之间耦合性的应用
  2. Cordova-Android-Android target:not installed
  3. 【20.00%】【codeforces 44G】Shooting Gallery
  4. MapReduce 经典案例手机流量排序的分析
  5. FontAwesome 图标
  6. spring-boot-quartz, 依赖spring-boot-parent good
  7. 堆(stack) 之 c 和 c++模板实现(空类默认成员函数 初谈引用 内联函数)
  8. 概率图模型(PGM) —— 贝叶斯网络(Bayesian Network)
  9. repo/git Android/CyanogenMod srouce code
  10. 44个 Javascript 变态题解析——分分钟让你怀疑人生