Obtener las coordenadas superiores izquierdas de un elemento WPF UIElement

Estoy trabajando en extender el cambio de tamaño de MicrosoftAdorner ejemplo y necesita poder reposicionar el elemento después de decir que se ha arrastrado el controlador de arrastre inferior izquierdo.

Entonces, si tengo un cuadro de texto de, digamos, 150 de ancho, 35 de alto posicionado en mi formulario, y el controlador de arrastre inferior izquierdo cambia el ancho a 200 de ancho, la mano derecha del cuadro de texto permanece sin cambios pero el borde izquierdo se mueve hacia la izquierda.

Así que necesito saber las coordenadas superiores izquierdas del UIElement. He intentado Canvas.GetLeft y Canvas.GetTop pero devuelven NaN, lo cual es confuso.

Acabo de probar VisualTreeHelper.GetOffset, que devuelve un desplazamiento, pero cuando intenta usarlo en el método de organización del elemento, desaparece, presumiblemente porque los valores en el desplazamiento son demasiado altos.

En los días anteriores a Wpf, el sistema de coordenadas era bastante simple, wpf ha complicado demasiado las cosas, creo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta