我试图在面板内制作标题形状,而面板又在节点内。 我的代码目前看起来是这样的:
var _ = go.GraphObject.make;
var template =
_(go.Node, "Spot",{
minSize: new go.Size(150, NaN)
}
_(go.Panel, go.Panel.Auto,
_(go.Shape, {
figure: "Rectangle",
fill: "#ff00ff",
stroke: "#000000",
strokeWidth: 1,
alignment: new go.Spot(0.5, 0) //aligning it center
}
)
)
);
如果我想尽可能地拉伸(stretch)元素,我会添加
stretch: go.GraphObject.Fill
或者(如果水平)
stretch: go.GraphObject.Horizontal
但形状不会水平拉伸(stretch)。
到目前为止我还尝试过:
- 向面板添加一个 defaultStretch
- 向节点和面板添加 defaultStretch
- 更改面板布局(或定位,如果需要)
- 更改节点布局(或定位)
- 在三个组件的每一个的两个维度上设置 minSize 或 maxSize
我确实在 Gojs 网站上进行了研究,但只能找到上述内容。
谢谢你帮助我
PS:如果需要任何其他信息,我很乐意提供
最佳答案
在大多数情况下,一个 Panel 中应该有多个元素。在您的代码中,您实际上有两个面板,每个面板中只有一个元素。而且您的代码不显示任何文本(没有 TextBlock),因此它不能充当标题。
您还没有说要拉伸(stretch)哪个元素。设置 GraphObject.stretch 是正确的做法。但有时您还需要在面板上设置它,以确保面板被拉伸(stretch)以允许面板内部的内容也被拉伸(stretch)。
Panel.defaultStretch 只是一种在面板的每个元素上设置 GraphObject.stretch 默认值的方法。
我的猜测是,如果您想要一个被拉伸(stretch)以适应另一个对象(可能是一个 TextBlock)的形状,您会想要使用“自动”面板。这是您在最小示例和许多其他示例中默认看到的内容。
如果你添加: { minSize: new go.Size(150, NaN) }, 到 Minimal 示例中的节点模板,您将看到:
这就是您要找的吗?如果没有,请添加您想要的草图。
关于javascript - GoJS 不拉伸(stretch)形状以适应父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31675361/