指针与颜色值范围
我们在绑定到指针这节中,用两个Range实现了下图的效果:
有了上一节介绍的ValueColor,我们用一个Range就能实现了,因为ValueColor有个PointerIndex属性,我们可以 不设置Value属性,直接通过PointerIndex属性取指针值。
我们看看实现过程,首先删除原来的两个Range,然后:
1、增加一个Range
2、给Range增加两个ValueColor,二者的属性设置 如下,注意第一个Range的Value属性为0 ,第二个Range没有设置Value属性,而是将PointerIndex属性设置为100,也就是取主指针的值:
这里将Opacity(透明度)设置为50%,除了美观的需要,还是因为Marks和Range重叠在一起,不合理设置透明度的话,Range可能会完全覆盖掉Marks。
上述设置的意思是:从0到指针值,Range的颜色为绿色,从指针值到120,Range的颜色为红色。
也可以用下面的代码来完成同样的设置,测试代码前,请先删除原来的Range:
Dim
rg
As
RadialGauge = e.Form.Controls("Guages1").RadialGauge
Dim
rng
As
New
GaugeRange()
rng.Location = 85
rng.ValueColorFalloff = C1.Win.C1Gauge.C1GaugeValueColorFalloff.None
rng.Width = 10
rng.Border.LineStyle = C1.Win.C1Gauge.C1GaugeBorderStyle.None
rng.ValueColors.Add(
New
GaugeValueColor(0, color.SpringGreen, 0.5))
'三个参数的构造函数
rng.ValueColors.Add(
New
GaugeValueColor(Double.NaN,
100, color.OrangeRed, 0.5))
'四个参数构的造函数
rg.Decorators.Add(rng)
重要提示:这里用到了GaugeValueColor的四参数构造函数,这四个参数分别为:起始值、指针编号,颜色和透明度,如果要绑定到指针,请将起始值设置为Double.NaN
关于成员顺序与覆盖
前面提到成员覆盖问题,并通过设置透明度来避免可能的覆盖,这里说的是可能,是因为我们还可以通过调整成员顺序来避免覆盖,系统在绘制仪表时,是按先后顺序绘制的,所以集合中越靠后的成员,越会显示在前面:
提示:调整先后顺序,并不会即时刷新仪表,通常要单击"确定"按钮后才会生效。