我有一个StackPanel
有N个孩子的。我想获得子项相对于父项的 x,y 坐标StackPanel
。
中的子StackPanel
级水平居中,因此每当StackPanel
调整大小时,子级居中。以下是我为获取子项相对于的 TopLeft 角所做的操作StackPanel
:
Dim parent = VisualTreeHelper.GetParent(childItem)
childItem.TranslatePoint(VisualTreeHelper.GetDescendantBounds(childItem).TopLeft, parent)
假设在初始布局中它给我的点是 (20,0)。现在布局发生了变化并且StackPanel
变宽了,但孩子们仍然居中。我希望这种方法现在能给我一些类似 (150, 0) 的东西,但它仍然给我 (20,0)。从视觉上我可以看到这些项目位于 的中心StackPanel
,但它仍然给了我初始坐标。我究竟做错了什么?