如何获取子元素相对于父元素的位置?

时间:2009-12-17 18:35:17

标签: wpf

如果a拥有Canvas父级,则很容易获得孩子的位置:

Canvas.GetLeft/Top (child)

但我怎样才能让其他类型的父母获得孩子的位置?

1 个答案:

答案 0 :(得分:66)

可以使用控件的TranslatePoint方法完成。

UIElement container = VisualTreeHelper.GetParent(control) as UIElement;
Point relativeLocation = control.TranslatePoint(new Point(0, 0), container);

new Point(0, 0)表示控件的左上角,TranslatePoint将返回该点相对于父控件的位置(我假设父级是UIElement)。<登记/> 您可以代替容器放置控件的任何祖先。