如何让温度、湿度、压力等有量程的监控值如仪表盘(DashBoard)一样显示?
思路(GDI绘图)
- 定义属性:(仪表盘的半径、颜色、间隙;刻度圆的半径、颜色、字体;指针的颜色、占比;文本的字体、占比;)
- 绘制图形:(半圆、刻度、指针、中心、文本)
1.定义属性
- 将以上属性挨个敲完
private Color colorCircle1 = Color.FromArgb(33, 80, 33);
[Browsable(true)]
[Category("布局_G")]
[Description("外环颜色1")]
public Color ColorCircle1
{
get {
return colorCircle1; }
set {
colorCircle1 = value; this.Invalidate(); }
}
private Color colorCircle2 = Color.FromArgb(22, 128, 22);
[Browsable(true)]
[Category("布局_G")]
[Description("外环颜色2")]
public Color ColorCircle2
{
get {
return colorCircle2; }
set {
colorCircle2 = value; this.Invalidate(); }
}
private Color colorCircle3 = Color.FromArgb(20, 181, 20);
[Browsable(true)]
[Category("布局_G")]
[Description("外环颜色3")]
public Color ColorCircle3
{
get {
return colorCircle3; }
set {
colorCircle3 = value; this.Invalidate(); }
}
private Color pointColor = Color.Green;
[Browsable(true)]
[Category("布局_G")]
[Description("指针颜色")]
public Color PointColor
{
get {
return pointColor; }
set {
pointColor = value; this.Invalidate(); }
}
private Color scaleColor = Color.Black;
[Browsable(true)]
[Category("布局_G")]
[Description("刻度颜色")]
public Color ScaleColor
{
get {
return scaleColor; }
set {
scaleColor = value; this.Invalidate(); }
}
private float scaleProportion = 0.8f;
[Browsable(true)]
[Category("布局_G")]
[Description("刻度圆占外圆的比例0-1:越大越紧挨")]
public float ScaleProportion
{
get {
return scaleProportion; }
set
{
if (value > 1.0f ||