Panel是负责任的大小和位置的一切元素。每一个面板竖立本身的坐标系。一个面板的元件的绘制递次示意竖立这些元素的Z轴排序。
虽然只要一个面板,也有很多差别范例的面板,每一个都有其本身的目标是怎样部署的元素。当你竖立一个面板,你通常会指定其Panel.type作为组织函数参数。这些都是存在的种种面板构成:
Panel.Position
Panel.Vertical
Panel.Horizontal
Panel.Auto
Panel.Spot
Panel.Table
Panel.Viewbox
Panel.Link
Panel.Grid
位置面板
最简朴的一种面板是“Position”(Panel.Position)。每一个元素取得其一般大小,不管其默许大小或指定GraphObject.desiredSize (或等价的GraphObject.width和GraphObject.height)。
每一个元素的位置是由GraphObject.position属性指定。假如没有指定位置时,元件被定位在(0,0)。一切位置都是面板本身的坐标系中,而不是在文件局限的坐标系。位置能够包含负坐标。
面板的大小恰好足以包容一切元素。假如你愿望它是比大一点,能够设置Panel.padding属性。
diagram.add(G(
go.Part,
go.Panel.Position,
{
background: '#eee'
},
G(
go.TextBlock,
{
text: '0, 0',
background: '#394'
}
),
G(
go.TextBlock,
{
text: '100, 100',
background: '#394',
position: new go.Point(100, 100)
}
),
G(
go.TextBlock,
{
text: '0, 100',
background: '#394',
position: new go.Point(0, 100)
}
),
G(
go.TextBlock,
{
text: '100, 000',
background: '#394',
position: new go.Point(100, 0)
}
)
));
垂直面板
面板的一切面板元件的分列垂直从上到下。每一个元件取得其一般高度和任其一般的宽度,或许拉伸时的面板的宽度。假如元素的GraphObject.stretch有任何垂直舒展的部份,它被疏忽。
全部面板的宽度婚配最宽的对象。注重,在末了textBlock不设置GraphObject.width属性,使得GraphObject.stretch值是有用的。
diagram.add(G(
go.Part,
go.Panel.Vertical,
{
background: '#eee'
},
G(
go.TextBlock,
{
text: '左',
background: '#394',
alignment: go.Spot.Left
}
),
G(
go.TextBlock,
{
text: '中',
background: '#394',
alignment: go.Spot.Center
}
),
G(
go.TextBlock,
{
text: '右',
background: '#394',
alignment: go.Spot.Right
}
),
G(
go.TextBlock,
{
text: '----拉伸面板----',
background: '#394'
}
),
G(
go.TextBlock,
{
text: '扩大背景',
background: '#394',
alignment: go.Spot.Right,
stretch: go.GraphObject.Fill
}
)
));
由于没有指定面板的宽度,其宽度是最宽的元件的宽度。能够经由过程MAXSIZE来限定。
G(
go.TextBlock,
{
text: '扩大背景',
background: '#394',
alignment: go.Spot.Right,
stretch: go.GraphObject.Fill,
MAXSIZE: new go.Size(100, NAN)
}
)