【问题标题】:GoJS not stretching shapes to fit parentGoJS 没有拉伸形状以适应父级
【发布时间】:2015-07-28 11:45:13
【问题描述】:

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

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
  • 更改面板布局(或根据需要进行定位)
  • 更改节点布局(或定位)
  • 在三个组件中的每一个组件的两个维度上设置 minSize 或 maxSize

我在 Gojs 网站上研究过,但只能找到上面提到的东西。

谢谢你帮助我

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

【问题讨论】:

    标签: javascript gojs


    【解决方案1】:

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

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

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

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

    如果您添加: { minSize: new go.Size(150, NaN) }, 到 Minimal 示例中的 Node 模板,您将看到:

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

    【讨论】:

    • 感谢您的回复。与此同时,我自己修复了它,主要按照您在回答中提出的建议进行操作。但是需要做一件事才能使拉伸生效:设置某物的宽度。就我而言,我有一个带有两个面板的节点(一个用于形状,一个用于文本)。我总是定义类似stretch:...fill 或Text.wrapfit 的东西,但我从来没有说明如果实际上没有内容该怎么做。 minSize:在这里不起作用。我必须设置 minSize,另外我必须在节点上设置所需的 width,然后一切正常。
    • 是的,如果你想让文本换行,必须限制允许的宽度。您可以通过设置宽度(a.k.a.desiredSize.width)、设置 maxSize.width 或让面板限制其实际宽度来做到这一点。如果将宽度设置为实数,则无需设置 minSize 或 maxSize。 gojs.net/latest/intro/sizing.html
    • 好吧,这里的问题是,即使我设置了 minSize(面板或节点,或两者),拉伸也不起作用,因为没有设置所需的宽度。所以现在我有这样的代码:minSize: new go.Size(150, NaN), width: 150。在我的情况下,宽度经常被覆盖,因为我使用长标题来确定大小(在我的情况下)跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2011-01-12
    • 1970-01-01
    • 2015-07-20
    • 2013-08-22
    • 1970-01-01
    相关资源
    最近更新 更多