Как я могу получить положение дочернего элемента относительно родителя?
Если у a есть родитель Canvas, очень легко получить положение дочернего элемента:
Canvas.GetLeft/Top (child)
Но как я могу получить положение ребенка для других типов родителей?
Ответ 1
Это можно сделать с помощью метода TranslatePoint элемента управления.
UIElement container = VisualTreeHelper.GetParent(control) as UIElement;
Point relativeLocation = control.TranslatePoint(new Point(0, 0), container);
new Point(0, 0) представляет верхнюю левую точку элемента управления, а TranslatePoint возвращает местоположение этой точки относительно родительского элемента управления (я предположил, что родительский элемент - это UIElement).
Вместо контейнера вы можете разместить любого предка элемента управления.