Как сделать так, чтобы текст в текстовом блоке отображал над (на переднем плане) все элементы в одном пространстве - PullRequest
0 голосов
/ 20 марта 2020

Ниже приведен пример кода. Я просто пытаюсь заставить текстовый блок рендериться выше других задействованных элементов. Существует множество визуализируемых элементов, но основная проблема заключается в следующем:
Горизонтальные и вертикальные линии, используемые для рисования видимой сетки, скрывают текст под ней.
Мне нужно иметь возможность либо сделать линии сетки дальше назад в z-позиционирование или перемещение текста на передний слой или z-pos.

myDiagram.nodeTemplateMap.add('Slant',
                    $(go.Node, "Spot",`enter code here`

                        new go.Binding("location", "", function (data) {
                            // Different data items have x/y this in different formats...
                            var x = data.XPos || 0;
                            var y = data.slantShelfVirtualYpos * -1 || 0;
                            return new go.Point(x, y);
                        }),
                        // shelf
                        $(go.Shape, "Rectangle",
                            { strokeWidth: 1 },
                            { fill: $(go.Brush, "Linear", { 0.0: "white", 1.0: "gray" }) },
                            new go.Binding('width', '', function (x) { return x.ShelfLength }),
                            new go.Binding('height', '', function (x) {

                                return x.slantShelfHeightOffset ;
                            }),
                        ),
                        // guardrail vertical lines
                        $(go.Panel, "Grid",
                            {
                                gridCellSize: new go.Size(10, 10),
                                alignment: go.Spot.Bottom,
                                alignmentFocus: go.Spot.Bottom
                            },
                            $(go.Shape, "LineV", { strokeWidth: 1 }),
                            new go.Binding('width', '', function (x) { return x.ShelfLength  }),
                            new go.Binding('height', '', function (x) { return x.GuardRailHeight }),
                        ), // end of guardrail Vertical lines
                        // guardrail top horizontal rail
                        $(go.Panel, "Grid",
                            {
                                gridCellSize: new go.Size(10, 10),
                                alignment: go.Spot.Bottom,
                                alignmentFocus: go.Spot.Bottom
                            },
                            $(go.Shape, "LineH", { strokeWidth: 1 }),
                            new go.Binding('width', '', function (x) { return x.ShelfLength }),
                            new go.Binding('height', '', function (x) { return x.GuardRailHeight }),
                        ), // end of guardrail Vertical lines
                        $(go.TextBlock, {

                            font: '7px sans-serif',
                            alignment: go.Spot.BottomLeft,
                            alignmentFocus: go.Spot.BottomLeft
                        },
                            new go.Binding("text", "", function (x) { 
                               return "shelf:" + x.ShelfNumber + " Ypos: " + x.YPOS + " type:" + 
                               x.ShelfTypeName + " Slope:" + x.Slope })
                        ),
                    ),// end of shelf number text box

                ); // end of the slant shelf template

1 Ответ

0 голосов
/ 22 марта 2020

TextBlock действительно находится перед "сеткой" Panel , в связи с порядком внутри их Panel .

I Предлагаем установить TextBlock.background в светлый цвет:

  $(go.TextBlock,
    {
      background: "white",
      . . .
    })
...