Михаил Черномордиков Developer Evangelist, Microsoft Россия
Готовые элементы Canvas, Grid StackPanel
Менеджеры размещения Классы, основанные на Panel Коллекция Children MeasureOverride ArrangeOverride
Два прохода для размещения Расчет Менеджер размещения рассчитывает свободное пространство для каждого дочернего элемента Child определяет свой размер DesiredSize Расположение Менеджер размещения позиционирует свои дочерние элементы
Настраиваемое размещение Margies Carousel
Свойства, влияющие на размещение Width Height Margin Visibility Alignment (Vertical/Horizontal) Если вы создаете свой менеджер размещения с различными свойствами, вызывайте вручную InvalidateMeasure/InvalidateArrange
События в процессе размещения SizeChanged Вызывается только во время изменения размеров LayoutUpdated
ActualWidth, ActualHeight Содержат актуальную ширину и высоту элемента управления, заданные родительским элементом В некоторых случаях может не совпадать с Width/Height В процессе размещения необходимо, чтобы Actual* свойства были определены
Z-Order Элементы располагаются в порядке из инициализации, причем последний лежит сверху Присоединенное свойство Canvas.Zindex помогает задавать порядок
События во время размещения Глобальные события: LayoutUpdated -- произошли какие-либо изменения События уровня объекта: SizeChanged – ActualHeight/Width изменились
Трансформации Scale, Rotate, Translate Применяются как RenderTransform Не влияют на размещение Для этого можно использовать LayoutTransform
WrapPanel Делаем свой менеджер
Михаил Черномордиков Developer Evangelist, Microsoft Россия