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 上设置了(更大的)高度以使演示更清晰。