我有一个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,但它仍然给了我初始坐标。我究竟做错了什么?