Контейнерные элементы управления

Контейнер — это тип элемента управления, который определяет расположение других элементов управления. Логика контейнеров влияет только на прямые дочерние элементы управления. Контейнеры обычно размещают дочерние элементы управления каждый кадр, собирая их желаемый размер посредством .Measure(), а затем предоставляя им размер, который они могут себе позволить, посредством .Arrange(). После вычисления желаемых и предоставленных размеров своих дочерних элементов контейнер при необходимости может переопределить координаты дочерних компонентов. В этом документе описаны лишь некоторые из наиболее часто используемых контейнеров. Дополнения, расширяющие его другими, приветствуются.

Info

Эта страница — заготовка, и полные описания того, как контейнеры будут реагировать на добавление новых элементов, переполнение, тонкости с GridContainer и т. д. не рассмотрены.

BoxContainer

BoxContainer — самый простой элемент управления раскладки. Он размещает своих дочерних элементов последовательно в определённом Orientation: по вертикали или по горизонтали. Элементы управления не перекрываются.

ПолеТипФактическое значение по умолчаниюОписание
OrientationLayoutOrientationHorizontalРасполагать элементы по горизонтали или по вертикали.
AlignAlignModeBeginВыравнивание дочерних элементов вдоль оси ориентации.
SeparationOverrideint0Расстояние между элементами.

GridContainer

GridContainer размещает своих дочерних элементов в настраиваемой сетке.

ПолеТипФактическое значение по умолчаниюОписание
ColumnsintКоличество столбцов, на которые организуются дочерние элементы.
RowsintКоличество строк, на которые организуются дочерние элементы.
MaxGridWidthfloatМаксимальная ширина сетки элементов; динамически определяет количество столбцов на основе размера элементов.
MaxGridHeightfloatМаксимальная высота сетки; динамически определяет количество строк на основе размера элементов
VSeparationOverrideint0Вертикальное расстояние между элементами.
HSeparationOverrideint0Горизонтальное расстояние между элементами.
ExpandBackwardsboolfalseРасширять ли сетку в обратном направлении, то есть от правого нижнего угла к левому верхнему.

ScrollContainer

ScrollContainer — это контейнер, который показывает обрезанный вид своих дочерних элементов с необязательной прокруткой по вертикали, по горизонтали или в обоих направлениях.

ПолеТипФактическое значение по умолчаниюОписание
FallbackDeltaScrollbooltrueЕсли true, вертикальная прокрутка будет преобразована в горизонтальную, если вертикальная прокрутка невозможна.
ScrollSpeedXint50Скорость прокрутки по оси x.
ScrollSpeedYint50Скорость прокрутки по оси y.
ReserveScrollbarSpaceboolfalseБудет ли полоса прокрутки занимать место в раскладке
VScrollEnabledbooltrueВключена ли вертикальная прокрутка.
HScrollEnabledbooltrueВключена ли горизонтальная прокрутка.

LayoutContainer

LayoutContainer помогает в сложных раскладках, позволяя своим дочерним элементам указывать, как их следует размещать.

ПолеТипФактическое значение по умолчаниюОписание
AnchorBeginfloat0Значение якоря, находящегося в начале раскладки.
AnchorEndfloat1Значение якоря, находящегося в конце раскладки.
InheritChildMeasurebooltrueЕсли true, измерения этого элемента управления будут как минимум размером с любой содержащийся в нём элемент управления.

Тогда дочерние элементы LayoutContainer могут использовать следующие поля для управления своей раскладкой:

ПолеТип
MarginLeftfloat
MarginTopfloat
MarginRightfloat
MarginBottomfloat
AnchorLeftfloat
AnchorTopfloat
AnchorRightfloat
AnchorBottomfloat
GrowHorizontalbool
GrowVerticalbool

Subpages