У меня есть 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
, но он все еще дает мне начальные координаты. Что я делаю не так?