chart控件做实时曲线显示_基于GDI+技术开发工业仪表盘控件

b7475bf6a9d3e0e2798153e74254497e.png

写在前面

上次给大家看了一个上位机界面之后,很多人表示对那个仪表盘的开发感兴趣,今天就跟大家分享一下整个的开发过程,由于整个仪表盘开发的过程还是有些复杂的,无法将所有的代码都一一展示,所以重点跟大家分享一下开发的思路,毕竟每个人的风格都不一样。

1、效果图展示

先给大家看看实际项目中的应用效果图:

6c5928df25c7a6aa8b07cccdde835053.png
上位机UI界面

对于这种仪表盘控件的开发,只能通过GDI+来实现。实际使用中,我们可以根据需要设置不同的样式,包括颜色、角度、量程等等,下面给大家展示一下:

bba97c69b36d69d4a8147f2cac673972.png

2、控件开发过程

GDI+开发控件其实并不是特别难,但是会比较复杂,涉及的东西比较多,需要有一定的空间想象能力,甚至是数学几何基础。

任何一个复杂的GDI+控件,里面无非就是字段(Field)、属性(Property)、方法(Method)、委托(Delegate)以及事件(Event)。其实属性是灵魂,GDI+设计及绘制就是围绕属性来进行开发的。

我们拿到这样一张效果图之后,第一步要做的事情是,确定需要设计哪些属性?

A:仪表盘部分:

  1. GaugeColor:设置或获取仪表盘的边框颜色
  2. PointerColor:设置或获取仪表盘的指针颜色
  3. RangeMin:设置或获取量程的最小值
  4. RangeMax:设置或获取量程的最大值
  5. CurrentValue:设置或获取当前数值
  6. RangeAlarmMin:设置或获取量程报警最小值
  7. RangeAlarmMax:设置或获取量程报警最大值
  8. TopGap:设置或获取整个控件的上下间隙
  9. LeftGap:设置或获取整个控件的左右间隙
  10. PointerRadius:设置或获取中心原点的半径
  11. AlarmColor:设置或获取报警线的颜色

B:刻度值部分

  1. BigScaleCount:设置或获取大刻度数量
  2. SmallScaleCount:设置或获取小刻度数量
  3. IsAllowFullCircle:设置或获取是否允许整圆显示
  4. ScaleWidth:设置或获取刻度值的最大宽度
  5. ScaleHeigth:设置或获取刻度值的最大高度

C:文本显示部分

  1. TextColor:设置或获取文本颜色
  2. UnitText:设置或获取显示单位
  3. IsTextVisiable:设置或获取文本内容是否显示
  4. TextGap:设置或获取文本显示位置与刻度的间距

通过一系列的分析之后,确定了设计以上20种属性,确定属性之后,即可通过重写OnPaint事件进行重绘,重绘步骤又是怎样的呢?

  1. 确定整体核心三要素(中心点、偏移角度、圆环半径)
  2. 绘制大刻度
  3. 绘制小刻度
  4. 绘制刻度值
  5. 绘制文本
  6. 绘制实时值指针
  7. 绘制报警框

写在最后

本文旨在结合GDI+的相关技术介绍了一个仪表盘控件开发的整个过程,自定义控件在上位机开发中应用非常广泛,除了GDI+绘制控件以外,还有扩展控件和组合控件的应用。对于从事上位机开发的学员来说,学好GDI+是非常有必要的,可以大大增加你项目的扩展性和可视性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值