资讯专栏INFORMATION COLUMN

GoJS 绘图 (七) :表面板(tablePanel)

sushi / 2311人阅读

摘要:表板中的每个对象被放入由的值索引的和。面板会看行和列的所有在面板中的对象,以确定该表应多少行和列。一行一列一行二列二行一列二行三列请注意,并非表中的每一个列需要有一个存在。属性指定的宽度和或高度是否应该承担全部由面板给它的空间。

表板中的每个对象被放入由的值索引的GraphObject.row和GraphObject.column。面板会看行和列的所有在面板中的对象,以确定该表应多少行和列。

diagram.add(g(
    go.Part,
    go.Panel.Table,
    g(
        go.TextBlock,
        {
            text: "一行一列",
            row: 0,
            column: 0,
            margin: 2,
            background: "#493"
        }
    ),
    g(
        go.TextBlock,
        {
            text: "一行二列",
            row: 0,
            column: 1,
            margin: 2,
            background: "#493"
        }
    ),
    g(
        go.TextBlock,
        {
            text: "二行一列",
            row: 1,
            column: 0,
            margin: 2,
            background: "#493"
        }
    ),
    g(
        go.TextBlock,
        {
            text: "二行三列",
            row: 1,
            column: 2,
            margin: 2,
            background: "#493"
        }
    )
));

请注意,并非表中的每一个“列”需要有一个GraphObject存在。
如果在一个“列”中有多个对象,他们可能会彼此重叠。

diagram.add(g(
    go.Part,
    "Table",
    {
        background: "#ffffd"
    },
    g(
        go.TextBlock,
        {
            text: "这里的文字会重叠",
            row: 0,
            column: 0
        }
    ),
    g(
        go.TextBlock,
        {
            text: "叠重会字文的里这",
            row: 0,
            column: 0
        }
    )
));
排列和对齐

一个面板中GraphObject的大小由许多因素决定的。GraphObject.stretch属性指定的宽度和/或高度是否应该承担全部由面板给它的空间。当的宽度和高度不拉伸以填充在给定的空间,GraphObject.alignment其中如果它比可用空间小的对象放置属性控制。一个也可拉伸宽度,同时竖直对准。

在行对齐
diagram.add(g(
    go.Part,
    g(
        go.Panel,
        "Table",
        {
            defaultAlignment: go.Spot.Left
        },
        g(
            go.RowColumnDefinition,
            {
                column: 0,
                width: 200
            }
        ),
        g(
            go.RowColumnDefinition,
            {
                column:1,
                width: 15,
            }
        ),
        g(
            go.Panel,
            "Auto",
            {
                row: 0,
                column: 0,
                alignment: go.Spot.Left
            },
            g(
                go.Shape,
                "RoundedRectangle",
                {
                    fill: "#493"
                }
            ),
            g(
                go.TextBlock,
                "auot panel"
            )
        ),
        g(
            go.TextBlock,
            {
                text: "alignment: left",
                row: 0,
                column:2
            }
        ),
        g(
            go.Panel,
            "Auto",
            {
                row: 1,
                column: 0,
                alignment: go.Spot.Center
            },
            g(
                go.Shape,
                "RoundedRectangle",
                {
                    fill: "#493"
                }
            ),
            g(
                go.TextBlock,
                "auto panel"
            )
        ),
        g(
            go.TextBlock,
            {
                text: "alignment: center",
                row:1,
                column: 2
            }
        ),
        g(
            go.Panel,
            "Auto",
            {
                row:2,
                column: 0,
                alignment: go.Spot.Right
            },
            g(
                go.Shape,
                "RoundedRectangle",
                {
                    fill: "#493"
                }
            ),
            g(
                go.TextBlock,
                "auto panel"
            )
        ),
        g(
            go.TextBlock,
            {
                text: "alignment: right",
                row: 2,
                column: 2
            }
        )
    )
));
在列对齐

和行对齐一样,这里不重复写了。

跨越行或列

下面是一个包括跨列和行跨越一个例子。

diagram.add(g(
    go.Part,
    g(
        go.Panel,
        "Table",
        g(
            go.TextBlock,
            {
                text: "顶标题",
                row: 0,
                column: 0,
                columnSpan: 3,
                stretch: go.GraphObject.Horizontal,
                margin: 2,
                background: "#394"
            }
        ),
        g(
            go.TextBlock,
            {
                text: "侧标题",
                row: 1,
                column: 0,
                rowSpan:2,
                margin: 2,
                stretch: go.GraphObject.Vertical,
                background: "#394"
            }
        ),
        g(
            go.TextBlock,
            {
                text: "一行一列",
                row: 1,
                column: 1,
                margin: 2,
                background: "#394"
            }
        ),
        g(
            go.TextBlock,
            {
                text: "一行两列",
                row: 1,
                column: 2,
                margin: 2,
                background: "#394"
            }
        ),
        g(
            go.TextBlock,
            {
                text: "二行一列",
                row: 2,
                column: 1,
                margin: 2,
                background: "#394"
            }
        ),
        g(
            go.TextBlock,
            {
                text: "二行三列",
                row: 2,
                column: 3,
                margin: 2,
                background: "#394"
            }
        ),
        g(
            go.TextBlock,
            {
                text: "结尾",
                row: 3,
                column: 2,
                columnSpan: 2,
                margin: 2,
                background: "#394"
            }
        )
    )
));

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86299.html

相关文章

  • 利用vue制作在线涂鸦

    摘要:撤销清空等操作撤销前进清空清空前后数据恢复到默认数据地址查看代码 效果展示 showImg(https://segmentfault.com/img/bVHJXf?w=1550&h=846); Canvas API简介 调用方法 getImageData() 返回ImageData对象,该对象为画布上指定的矩形复制像素数据 putImageData() 把图像数据(从指定的 Imag...

    nemo 评论0 收藏0
  • GoJS 绘图 (一) :入门

    摘要:是一个库,让你轻松创建现代浏览器的交互图。支持图形化的模板和图形对象属性数据模型的数据绑定。许多预定义的工具和命令执行,大部分的图表所需要的标准的行为。外观和行为的定制是大多设置属性的问题。 GoJS是一个JavaScript库,让你轻松创建现代Web浏览器的交互图。 GoJS支持图形化的模板和图形对象属性数据模型的数据绑定。你只需要保存和恢复模型,包括持有任何性质的应用需求,简单的J...

    X_AirDu 评论0 收藏0
  • GoJS 绘图 (四) :构建节点与GraphObjects

    摘要:你可以构建一个节点或其类型的代码。以下将讨论基本类型,你可以用它来建立一个节点对象。这些页面通过明确创建和添加节点和链路建立的示意图。一个非常简单的节点由一个与构成。虽然以这种方式构建的节点将工作变得更加复杂的代码将变得更加难以阅读和维护。 你可以构建一个节点或其类型的JavaScript代码。以下将讨论基本类型,你可以用它来建立一个节点对象。这些页面通过明确创建和添加节点和链路建立的...

    jokester 评论0 收藏0
  • GoJS 绘图 (十) :链接(完结)

    摘要:非定向链接最简单的链接没有箭头指示方向。该模板只包含一个形状为主要元素,因为这是在节点之间绘制的线条。链接的路线被计算后将得到一个路径的点。可以很容易地建立方向,只需添加一个形状并设置其属性。目前也就只能先写这么多吧入门的话问题不大了 非定向链接 最简单的链接没有箭头指示方向。该模板只包含一个形状为主要元素,因为这是在节点之间绘制的线条。链接的路线被计算后将得到一个路径的点。 diag...

    Rocko 评论0 收藏0
  • GoJS 绘图 (八) :模型和模版

    摘要:下面是这样做的一种方式使用模型和模板事实上,图已经为节点和链接非常简单的默认模板。该特定节点的数据已投入对象的数组。因此,我们需要替换节点模版。数据绑定数据绑定是一种声明声明一个对象的属性值应该用于设置另一个对象的属性值。 使用模版构视图 让我们尝试建立两个节点,将它们与一个链接连接。下面是这样做的一种方式: var node1 = g( go.Node, Auto, ...

    Hanks10100 评论0 收藏0

发表评论

0条评论

sushi

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<