javascript - GoJS 不拉伸(stretch)形状以适应父级

标签 javascript gojs

我试图在面板内制作标题形状,而面板又在节点内。 我的代码目前看起来是这样的:

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 示例中的节点模板,您将看到: Minimal sample with minSize Nodes

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

关于javascript - GoJS 不拉伸(stretch)形状以适应父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31675361/

相关文章:

javascript - 机器可读的 HTML 和 CSS 规范?

无法使用javascript数组函数

javascript - 如何在 PHP 页面中保存 HTML 变量

javascript - gojs中如何将节点添加到父节点(当前选中的节点)?

javascript - 如何检测是否启用了 IndexedDB

javascript - 使用 greybox js 库使用 google tts 显示窗口

jquery - 如何从css文件加载图像到gojs中的go.picture

gojs - 如何在 UI 中过滤 gojs 中的节点?

javascript - GoJS中获取Panel的TextBlocks

javascript - DiagramListener 没有被调用?