Наличие "видимого переполнения" внутри узла GoJS или graphObject

Я хочу, чтобы внутри узла была фигура, которая бы частично выходила за границы узла. Значение -10px сверху и слева от родительского элемента.

Прямо сейчас у меня есть прямоугольник и круг внутри узла, и это выглядит так:

Как видите, ссылка не соединяется должным образом, так как размер узла увеличился. Я хотел бы, чтобы круг, используя термины css, был абсолютно позиционирован, другими словами, я не хочу, чтобы он влиял на размер узла (который, очевидно, невидим в этом примере).

Я пробовал следующие решения:

Установка ширины и высоты для узла. Затем он обрезает круг, потому что выходит за границы.

Использование свойств fromSpot и toSpot в узле для соединения ссылки с центром узла. Видимо они переопределяются макетом, и я не могу понять, как отключить isLayoutPositioned

Используя украшения, но я совсем не понимаю, как я должен их использовать.

Поиск, могу ли я как-то установить видимое переполнение элемента, или как-то повлиять на границы, или что-то в этом роде, но не нашел ничего, что бы сработало для меня.

Каково было бы правильное решение здесь?

1 ответ

Сделайте ваш узел "точечной" панелью, сделайте "главный" элемент вашего узла "портом", назначив ему GraphObject.portId, и поместите красный кружок относительно "основного" элемента, установив его свойство GraphObject.alignment, в этом случае go.Spot.TopLeft, Я также предполагаю, что назначение Node.locationObjectName - это то, что вам нужно.

myDiagram.nodeTemplate = $(go.Node, "Spot", { locationSpot: go.Spot.Center, locationObjectName: "BODY" }, $(go.Shape, { name: "BODY", width: 50, height: 50, fill: "lightgreen", strokeWidth: 0, portId: "" }), $(go.Shape, "Circle", { alignment: go.Spot.TopLeft, width: 20, height: 20, fill: "transparent", stroke: "red" }) );

Пожалуйста, прочитайте больше на http://gojs.net/latest/intro/nodes.html. Я рекомендую прочитать не только страницу "Начало работы" http://gojs.net/learn, но и все страницы "Введение" http://gojs.net/intro, относящиеся к типу приложения, которое вы хотите создать.

В частности, это должно быть полезно:

Другие вопросы по тегам