Получение левых верхних координат элемента WPF

Я работаю над расширением примера Microsoft resize Adorner, и мне нужно иметь возможность изменить положение элемента после, скажем, перетаскивания нижнего левого маркера перетаскивания.

Таким образом, если у меня есть текстовое поле, скажем, шириной 150, с высокой высотой 35, размещенное на моей форме, и нижний левый маркер перетаскивания изменяет ширину на 200, правая часть текстового поля остается неизменной, но левый край перемещается в левый.

Так что мне нужно знать верхние левые координаты UIElement. Я пробовал Canvas.GetLeft и Canvas.GetTop, но они возвращают NaN, что сбивает с толку.

Я только что попробовал VisualTreeHelper.GetOffset, который возвращает смещение, но когда вы пытаетесь использовать его в методе расположения элемента, оно исчезает, предположительно, так как значения в смещении слишком велики.

В дни до Wpf система координат была довольно простой, я думаю, что wpf усложнил вещи.

13
задан Bill Tarbell 23 July 2019 в 06:12
поделиться