Позиционирование элементов внутри WrapPanel, WPF


#1

Опишите пожалуйста особенности позиционирования элементов внутри WrapPanel в WPF. Спрашиваю, потому что слышал, что позиционирование элементов в WrapPanel отличается от Canvas, в котором мне приходилось размещать элементы доныне...


#2

WrapPanel позволяет определить содержимое, которое обтекает панель при изменении размеров окна. При позиционировании элементов в WrapPanel вы не указываете положение относительно верхней, левой, нижней и правой границ, как это обычно делается с Canvas. Однако для каждого подэлемента могут быть определены значения Height и Width (наряду с другими значениями свойств) для управления общим размером контейнера.

Поскольку содержимое внутри WrapPanel не стыкуется к определенной стороне панели, порядок определения элементов важен (содержимое визуализируется от первого элемента к последнему).

Панель WrapPanel располагает элементы управления в доступном пространстве — по одной строке или колонке за раз. По умолчанию свойство WrapPanel.Orientation установлено в Horizontal; элементы управления располагаются слева направо, затем — в следующих строках. Установка значения Vertical для свойства WrapPanel.Orientation приводит к размещению элементов в нескольких колонках.

Подобно StackPanel, панель WrapPanel действительно предназначена для управления мелкими деталями пользовательского интерфейса, а не компоновкой всего окна. Например, WrapPanel можно использовать для удержания вместе кнопок в элементе управления, подобном панели инструментов.