StackPanelN 個の子を持つ があります。親に対する子のx、y座標を取得したいStackPanel。
の子はStackPanel水平方向に中央に配置されるため、StackPanelサイズが変更されるたびに子が中央に配置されます。を基準にして子項目の左上隅を取得するために私がやっていることは次のとおりですStackPanel。
Dim parent = VisualTreeHelper.GetParent(childItem)
childItem.TranslatePoint(VisualTreeHelper.GetDescendantBounds(childItem).TopLeft, parent)
初期レイアウトで返されるポイントが (20,0) だとしましょう。レイアウトが変更されてStackPanel幅が広がりますが、子は中央に配置されたままです。このメソッドが (150, 0) のような値を返すことを期待していますが、それでも (20,0) が返されます。アイテムが の中心にあることが視覚的にわかりますが、StackPanelまだ初期座標が表示されています。私は何を間違っていますか?