线性仪表的布局

对于线性仪表,第一步要做的是通过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


本页地址:http://www.foxtable.com/webhelp/topics/3911.htm