GoJS嵌套形状定位
GoJS nested shape positioning
我正在尝试使用 GoJS 库绘制嵌套形状。现在我有一个矩形,里面只有一条线。
Whole Object 是一个具有两种形状的面板,一个矩形和一条负线。此时就可以了,MinusLine渲染在一个矩形的中心。
我想要实现的是 position/change MinusLine 从上到下的位置等等,基于我得到的一些条件,但是我不能以任何方式移动它。
例如,将完全居中的黄色线移动到红色或棕色的位置
代码如下:
GO(go.Node, "Table",
{
layerName: "AfterForeground",
movable: false,
locationObjectName: "BODY",
locationSpot: go.Spot.parse("0.5 0 0 0 "),
selectionObjectName: "MAIN_SHAPE",
selectionObjectName: "MAIN_SHAPE",
},
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
GO(go.Panel,go.Panel.Position, "Auto", {
row: 1,
column: 1,
name: "BODY",
stretch: go.GraphObject.Fill
},
GO(go.Shape, "Rectangle", {
fill: wellColor,
name: "MAIN_SHAPE",
stroke: myColor,
strokeWidth: 0.4,
}, new go.Binding("fill", "wellColor"),
) , new go.Binding("desiredSize", "size", go.Size.parse).makeTwoWay(go.Size.stringify)
,GO(go.Shape, "MinusLine", {}), // <-- Move this YELLOW line vertically somehere inside Rectangle
)
Table 面板(对于节点的面板类型)真的是您想要的吗?
到目前为止,您的 Table 面板只有一个单元格,默认情况下,单元格中的所有对象都位于中央。您可以通过向元素添加 alignment
属性 轻松移动它们。
这是您的 table 的示例,其中两个 sub-panels 添加到节点,一个与顶部对齐,一个与中心对齐,y 偏移量为 30:
https://codepen.io/simonsarris/pen/zYBrLaX?editors=1011
Table面板还有其他定位示例,这里:
https://gojs.net/latest/intro/tablePanels.html
https://gojs.net/latest/intro/tablePanels.html#StretchAndAlignmente
请注意,由于您已经定义了模板,形状占据了 table 的整个 space,形状的中心有一条负线。这可能不是您想要的。我在 Shape 上设置了宽度和高度,在 table 上设置了(更大的)高度以使演示更清晰。
我正在尝试使用 GoJS 库绘制嵌套形状。现在我有一个矩形,里面只有一条线。 Whole Object 是一个具有两种形状的面板,一个矩形和一条负线。此时就可以了,MinusLine渲染在一个矩形的中心。
我想要实现的是 position/change MinusLine 从上到下的位置等等,基于我得到的一些条件,但是我不能以任何方式移动它。
例如,将完全居中的黄色线移动到红色或棕色的位置
代码如下:
GO(go.Node, "Table",
{
layerName: "AfterForeground",
movable: false,
locationObjectName: "BODY",
locationSpot: go.Spot.parse("0.5 0 0 0 "),
selectionObjectName: "MAIN_SHAPE",
selectionObjectName: "MAIN_SHAPE",
},
new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
GO(go.Panel,go.Panel.Position, "Auto", {
row: 1,
column: 1,
name: "BODY",
stretch: go.GraphObject.Fill
},
GO(go.Shape, "Rectangle", {
fill: wellColor,
name: "MAIN_SHAPE",
stroke: myColor,
strokeWidth: 0.4,
}, new go.Binding("fill", "wellColor"),
) , new go.Binding("desiredSize", "size", go.Size.parse).makeTwoWay(go.Size.stringify)
,GO(go.Shape, "MinusLine", {}), // <-- Move this YELLOW line vertically somehere inside Rectangle
)
Table 面板(对于节点的面板类型)真的是您想要的吗?
到目前为止,您的 Table 面板只有一个单元格,默认情况下,单元格中的所有对象都位于中央。您可以通过向元素添加 alignment
属性 轻松移动它们。
这是您的 table 的示例,其中两个 sub-panels 添加到节点,一个与顶部对齐,一个与中心对齐,y 偏移量为 30: https://codepen.io/simonsarris/pen/zYBrLaX?editors=1011
Table面板还有其他定位示例,这里:
https://gojs.net/latest/intro/tablePanels.html
https://gojs.net/latest/intro/tablePanels.html#StretchAndAlignmente
请注意,由于您已经定义了模板,形状占据了 table 的整个 space,形状的中心有一条负线。这可能不是您想要的。我在 Shape 上设置了宽度和高度,在 table 上设置了(更大的)高度以使演示更清晰。