1

我试图在面板内制作标题形状,该面板再次位于节点内。到目前为止,我的代码如下所示:

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: go.GraphObject.Fill

或(如果水平)

stretch: go.GraphObject.Horizontal

但形状不会水平拉伸。

到目前为止我还尝试过什么:

  • 将 defaultStretch 添加到面板
  • 向节点和面板添加 defaultStretch
  • 更改面板布局(或根据需要进行定位)
  • 更改节点布局(或定位)
  • 在三个组件的每一个上设置 minSize 或 maxSize

我在 Gojs 网站上进行了研究,但只能找到上面提到的内容。

感谢你们对我的帮助

PS:如果需要任何其他信息,我很乐意提供

4

1 回答 1

2

在大多数情况下,面板中应该有多个元素。在您的代码中,您实际上有两个面板,每个面板中只有一个元素。而且您的代码不显示任何文本(没有 TextBlock),因此它不能充当标题。

你还没有说你想拉伸哪个元素。设置 GraphObject.stretch 是正确的做法。但有时您还需要在面板上设置它,以确保面板被拉伸以允许面板内部的内容也被拉伸。

Panel.defaultStretch 只是在面板的每个元素上设置 GraphObject.stretch 的默认值的一种方式。

我的猜测是,如果您想要一个被拉伸以适合另一个对象(可能是 TextBlock)的形状,您想要使用“自动”面板。这是您在最小示例以及许多其他示例中默认看到的内容。

如果在 Minimal 示例中的 Node 模板中添加:{ minSize: new go.Size(150, NaN) },您将看到: 具有 minSize 节点的最小样本

那是你要找的吗?如果没有,请添加您想要的草图。

于 2015-07-28T16:39:28.810 回答