布局属性

运用布局属性,我们可以改控件的大小、位置、动态位置。 那么,我们开始讲布局属性吧!

属性

属性属性名默认值描述
size大小数组:矢量[x,y][0,0]详见 控件大小 >
offset偏移量数组:矢量[x,y][0,0]详见 偏移量 >
layer层级整数0控件的层级,相对于父控件。层级高的控件会显示在前方,同时也允许负数层级。
min_size最小大小数组:矢量[x,y][0,0]规定该控件最小的大小。如果 size < min_size ,则 size 使用 min_size 作为大小。

坐标轴详见 控件大小 >
max_size最大大小数组:矢量[x,y][0,0]规定该控件最大的大小。如果 size > max_size ,则 size 使用 max_size 作为大小。

坐标轴详见 控件大小 >
anchor_from父锚点字符串center规定该控件的父锚点。

详见 锚点定位 >
anchor_to子锚点字符串center规定该控件的子锚点。

详见 锚点定位 >
inherit_max_sibling_width使用最大的同胞控件的宽度布尔值false是否使用最大的同胞控件的宽度。
inherit_max_sibling_height使用最大的同胞控件的高度布尔值false是否使用最大的同胞控件的高度。
use_anchored_offset使用锚点布尔值false是否让子控件使用该控件的锚点。
follows_cursor跟随光标布尔值false控件是否能跟随光标。
draggable拖动字符串:列举not_draggable是否能拖动控件。
注意:拖动属性仅适用于互动性控件

列举的值可以是:
not_draggable 不允许拖动
vertical 垂直拖动
horizontal 水平拖动
both 任意方向拖动

控件大小

接下来我们讲下 size 属性吧。
其中,矢量的坐标(X/Y轴)值可以是:

像素
默认
百分比
子控件百分比
最大子控件百分比
最大兄弟控件百分比
填充
Y轴百分比
X轴百分比

示例描述
像素数字 或 字符串[2,2]
["2px","2px"]
像素大小。
通常情况可以忽略 "px"。
默认字符串["default","default"]使用默认的控件大小。
百分比字符串["100%","50%"]相对于父控件占比。
子控件百分比字符串["100%c","50%c"]相对于子控件大小的百分比。

为 "100%c" 时,该控件大小 = 相对于子控件的大小;
为 "50%c" 时,该控件大小 = 50% 相对于子控件的大小。
最大子控件百分比字符串["100%cm","50%cm"]相对于子控件大小的百分比。

为 "100%cm" 时,该控件大小 = 相对于最大子控件的大小;
为 "50%cm" 时,该控件大小 = 50% 相对于最大子控件的大小。
最大兄弟控件百分比字符串["100%sm","50%sm"]相对于兄弟控件大小的百分比。

为 "100%sm" 时,该控件大小 = 相对于最大兄弟控件的大小;
为 "50%sm" 时,该控件大小 = 50% 相对于最大兄弟控件的大小。
填充字符串["fill","fill"]填充至父控件剩余大小。

该类型常用于父控件类型为 stack_panel 的控件。
X轴百分比字符串[10,"100%x"]相对于X轴大小的百分比。

仅 Y轴 可用!
Y轴百分比字符串["100%y",10]相对于Y轴大小的百分比。

仅 X轴 可用!
警告
X轴百分比,Y轴百分比不能同时在同个属性中使用!
错误示例: ["100%y","100%x"]
同时,数组中的坐标值可以进行简单的加减运算。
运算时,数组中的坐标值必须使用字符串进行运算。

例如:"100%-20px" "100%+100%c"

提示
像素大小在运算中必须带 "px" !

偏移量

偏移基于父元素的左上角,因此正方向为右下方(即负-y正+x,第四象限)。
接下来我们讲下 offset 属性数字值吧。

其中,数组中的坐标值与 size 属性一致,详见 坐标值类型表格 >

锚点定位

锚点,能让控件对齐到某个方向点,在该点的基础上,偏移、动画会将以此作为原点。

锚点有以下几种方向:

描述
top_left左上角
top_middle正上方
top_right右上角
left_middle正左方
center正中间
right_middle正右方
bottom_left左下角
bottom_middle正下方
bottom_right右下角

总得来说,锚点位置位置如下:

top_lefttop_middletop_right
left_middlecenterright_middle
bottom_leftbottom_middlebottom_right

对于anchor_from anchor_to,他们都是相互配合的,在锚点定位中缺一不可。例如:

"control": { "anchor_from": "center", "anchor_to": "center" }

一般anchor_fromanchor_to都是使用相同的列举值,因为这样的锚点很简单。
那么"anchor_from":"bottom_middle", "anchor_to":"left_middle",整体位置在下方,但偏向于左边。