线性仪表的布局
对于线性仪表,第一步要做的是通过ViewPort的子属性AspectRatio来设置宽高比,这一点要记住。
以下属性决定了仪表工作区的位置和大小:
BaseOrigin | Y轴开始位置 |
BaseFactor | Y轴方向逻辑长度,1为此方向的全部长度,如果为负数,则调转Y轴方向。 |
AxisStart | X轴开始位置 |
AxisLength | X轴方向逻辑长度,1为此方向的全部长度,如果为负数,则调转X轴方向。 |
OffPositon | 用于设置当Value为Double.NaN时的指针位置。 |
IsReversed | 是否翻转X轴,默认Minimum到Maximum时从左到右,如果IsReversed设置为True,Minimum到Maximum时从右到做。 |
Orientation | 仪表方向,默认为Horizontal,如果设置为Vertical,则会垂直排列仪表,也就是会对调X轴和Y轴 |
水平线性仪表的布局示意图:
在上图中:
1、从垂直方向看,BaseOrigin为0.4,
所以工作区的垂直起点是0.4, BaseFactor为0.5,所以工作区的高度为0.5,因为0.4 + 0.5 =
0.9,所以工作区垂直终点位置为0.9。在使用Marks和Labels等装饰件的时候,要通过Location属性设置其位置,在上图中,Location=0时的位置为0.4,Location=100时的位置为0.9。
2、从水平方向看,AxisStart为0.3,所以工作区的水平起点为0.3(Value为Minimum的位置), AxisLength为0.6,所以工作区的长度是0.6,因为0.3
+ 0.6 = 0.9,所以工作区的水平终点是0.9(Value为Maximum的位置)。
BaseFactor和AxisLength可以为负值,此时会掉转轴方向,如下图所示:
但一般没必要这么做,直接将IsReversed 设置为False更方便,也更好理解。
垂直线性仪表
如果将Orientation设置为True,则线性仪表会垂直排列,也就是对调了X轴和Y轴:
可以这样理解:
不管是水平线性仪表还是垂直线性仪表,AxisStart和AxisLength始终是沿着数据的方向(也就是刻度和标签的方向),BaseOrigin和BaseFactor则始终是垂直于数据的方向。
多个仪表的排列
线性仪表这种布局设计,可以让我们很方便地在一个Gauges控件中增加多个Gauge,例如:
在
上图中,5个仪表的Orientation属性都为True,都是垂直线性仪表,而且其baseFactor属性都是0.2,也就是5个仪表平分了工作区宽度,
不同的是他们的baseOrigin,分别是:
0
0.19
0.39
0.59
0.78
也就是水平方向,每间隔0.2左右增加个Gauge,每个Gauge的宽度都是0.2