Get panel height to set alignment

Since adornment’s alignment only specifies the location of the center point, when the length is too long, it will obscure the original node, so I wrote the following code hoping that the layout can change with the length, but it did not work, please help to see the reason or if there is a better solution

const inputClickedTemplate = $(
            go.Adornment,
            'Spot',
            $(go.Placeholder),
            $(
                go.Panel,
                'Vertical',
                $(go.Panel, 'Auto', inputAdornmentMainTemplate, { name: 'A' }),
                $(go.Panel, 'Auto', inputBottomMore),
                new go.Binding('alignment', 'naturalBounds', function (s: go.Rect) {
                    return new go.Spot(1, 1, 100, s.width);
                }).ofObject('A')
            )
        );

Using a binding source property that is not settable might not work reliably, if it works at all.

And why would you want the vertical offset be proportional to its width? Trying to keep everything square?

Could you share a screenshot with a sketch of what you want instead?

Sorry, that’s a typo, it should be length, the picture below is the current effect and the effect I want

$(go.Adornment, "Spot",
  $(go.Placeholder),
  $(go.Shape,
    {
      alignment: go.Spot.BottomRight, alignmentFocus: go.Spot.TopLeft,
      stroke: "brown", fill: "transparent", width: 100, height: 200
    })
)