Я бы хотел выровнять некоторые узлы (есть определенный тип) по левому и правому краю внутри группы.Когда я добавляю узел в группу, которая должна быть выровнена по левой стороне, у меня возникает проблема с макетом:
, но если я добавлю второй узел, который должен быть выровнен по правой сторонеИЛИ удалите все узлы, расположение групп правильное, и они выровнены по левой стороне экрана.С двумя узлами:
без узлов:
Это шаблон моих групп:
$(go.Group, "Auto",
{
layout: $(go.LayeredDigraphLayout, {
direction: 0,
columnSpacing: 10,
initializeOption: go.LayeredDigraphLayout.InitDepthFirstOut,
aggressiveOption: go.LayeredDigraphLayout.AggressiveMore
}),
minSize: new go.Size(800, 30),
computesBoundsIncludingLocation: true,
computesBoundsIncludingLinks: true,
computesBoundsAfterDrag: true,
isSubGraphExpanded: true,
},
$(go.Shape, "Rectangle", [
{
fill: null,
stroke: "gray",
strokeWidth: 2
},
new go.Binding('fill', '', function (group) {
return group.data.isEditable ? '#eee' : '#F7EAEC';
}).ofObject('')
]),
$(go.Panel, "Vertical",
{ defaultAlignment: go.Spot.Left, margin: 4 },
$(go.Panel, "Horizontal",
{ defaultAlignment: go.Spot.Top },
$(go.TextBlock,
{ font: "Bold 18px Sans-Serif", margin: 4, textAlign: "left" },
new go.Binding("text", "name"))
),
$(go.Placeholder,
{ padding: new go.Margin(10, 10), margin: 0 })
)
)
Чтобы выровнять узел по левому краю, я просто установил новое местоположение для детали на LayoutCompleted событие:
var viewportBounds = event.diagram.viewportBounds.copy();
var yPosition = part.location.y;
var xPosition = viewportBounds.x > 15 ? 5 : viewportBounds.x; // some margin for left
part.location = new go.Point(xPosition, yPosition);
Буду благодарен за любую помощь, чтобы исправитьэта проблема.