Canvas
предоставляет координаты каждого элемента управления с помощью прикрепленных свойств Canvas.Left
и Canvas.Top
, которые вы знаете, если вы все равно их расположили. Таким образом, (немного) более сложная часть получает другую координату, и для этого вы хотите знать визуализированную высоту / ширину. ActualHeight
и ActualWidth
дают вам это, предполагая, что элемент управления уже выложен:
double top = Canvas.GetTop(control)
double bottom = top + control.ActualHeight
double left = Canvas.GetLeft(control)
double right = left + control.ActualWidth
Если вы делаете это до того, как элементы управления будут отображены на экране, вы можете сначала выполнить control.UpdateLayout()
(или control.Measure()
), чтобы убедиться, что система макетов измеряет их размер.