主要属性

本节的内容可以参考示例文件"数据看板.Table"中的窗口"径向仪表绝对位置计算"。

径向仪表涉及到绝对定位的常用属性有(这些属性都在ViewPort组中):

 属性名称  说明
 X

距离控件左右边界距离的值,单位为像素,默认值为0,表示不做设置。如果是正值,也就是仪表距离仪表控件左边界的距离;如果是负值,就是仪表距离仪表控件右边界的距离。以下分别设置值为150和-150的效果:
 

在X值为正数的情况下,仪表使用的是距离控件左侧X之后的剩余空间,也就是宽450(控件宽600 - 150)*高400的空间,在此空间内继续按其定位设置计算位置和大小。这就相当于指定了一个固定不变 的左边距,不管仪表控件大小如何改变,这个仪表和控件左边的距离始终是X。

如果是负值,则仪表使用的是距离控件右侧X之后的剩余空间。相当于指定了一个固定不变的右边距。

 Y

距离控件上下边界距离的值,单位为像素,默认值为0。如果是正值,也就是仪表距离仪表控件上边界的距离;如果是负值,就是仪表距离仪表控件下边界的距离。以下分别设置值为100和-100的效果:

 

 MarginX

同时距离控件左右边界距离的值,单位为像素,默认值为0。如果是正值,也就是仪表距仪表控件左右边界同时向内缩的距离;如果是负值,就是仪表距仪表控件左右边界同时向外扩张的距离。如下图 MarginX设置为150,和X值只影响左边距(X为正值)或右边距(X为负值)中的一个不同,MarginX左右边距都会影响,然后剩余的空间是宽300*高400, 根据按小边计算的原则,仪表的半径为300*0.46=138像素:

 MarginY

同时距离控件上下边界的值,单位为像素,默认值为0。如果是正值,也就是仪表距仪表控件上下边界同时向内缩的距离;如果是负值,就是仪表距仪表控件上下边界同时向外扩张的距离。如下图 MarginY设置为-100,负值为向外扩展:

 Height

设置仪表的最大高度,单位为像素,默认值为0,表示不设置。如果指定具体的值,则仪表的高度最大值固定为此值,不管控件大小怎么变化仪表的高度都不会超过这个值。下图是Height设置为200的效果:

 Width

设置仪表的最大宽度,单位为像素,默认值为0,表示不设置。如果指定具体的值,则仪表的宽度最大值固定为此值,不管控件大小怎么变化仪表的宽度都不会超过这个值。下图是Width设置为300的效果:

 TranslateX

仪表水平移动的距离比例,默认为0,如果是正值,表示仪表向右移动的距离比例;如果是负值,仪表向左移动 的距离比例。如控件宽度为600像素,如果TranslateX设置为0.5,即仪表会向右移动600*0.5=300像素,如下图1,图2TranslateX设置为 -0.5:

    

 TranslateY 仪表垂直移动的距离比例,默认值为0。如果是正值,仪表向下移动;如果是负值,仪表向上移动。如控件高度为400像素,如果TranslateY设置为0.5,即仪表会向下移动400*0.5=200像素。

要点:

1、如果同时设置了Height和Width,没有设置TranslateX、TranslateY,则仪表的大小和位置会固定不变,不会跟随控件的大小变化而变化。真正的绝对定位。

2、如果同时设置了Height和Width,同时设置TranslateX、TranslateY其中1项或者2项,则仪表的大小会固定不变,但是位置会随着控件的大小变化而变化。

3、如果同时设置了Height和Width,则属性MarginX等同于属性X,设置后不会出现右边距;属性MarginY等同于属性Y,设置后不会出现下边距。