Контейнерные элементы управления
Контейнер — это тип элемента управления, который определяет расположение других элементов управления. Логика контейнеров влияет только на прямые дочерние элементы управления. Контейнеры обычно размещают дочерние элементы управления каждый кадр, собирая их желаемый размер посредством .Measure(), а затем предоставляя им размер, который они могут себе позволить, посредством .Arrange(). После вычисления желаемых и предоставленных размеров своих дочерних элементов контейнер при необходимости может переопределить координаты дочерних компонентов. В этом документе описаны лишь некоторые из наиболее часто используемых контейнеров. Дополнения, расширяющие его другими, приветствуются.
Эта страница — заготовка, и полные описания того, как контейнеры будут реагировать на добавление новых элементов, переполнение, тонкости с GridContainer и т. д. не рассмотрены.
BoxContainer
BoxContainer — самый простой элемент управления раскладки. Он размещает своих дочерних элементов последовательно в определённом Orientation: по вертикали или по горизонтали. Элементы управления не перекрываются.
| Поле | Тип | Фактическое значение по умолчанию | Описание |
|---|---|---|---|
Orientation | LayoutOrientation | Horizontal | Располагать элементы по горизонтали или по вертикали. |
Align | AlignMode | Begin | Выравнивание дочерних элементов вдоль оси ориентации. |
SeparationOverride | int | 0 | Расстояние между элементами. |
GridContainer
GridContainer размещает своих дочерних элементов в настраиваемой сетке.
| Поле | Тип | Фактическое значение по умолчанию | Описание |
|---|---|---|---|
Columns | int | Количество столбцов, на которые организуются дочерние элементы. | |
Rows | int | Количество строк, на которые организуются дочерние элементы. | |
MaxGridWidth | float | Максимальная ширина сетки элементов; динамически определяет количество столбцов на основе размера элементов. | |
MaxGridHeight | float | Максимальная высота сетки; динамически определяет количество строк на основе размера элементов | |
VSeparationOverride | int | 0 | Вертикальное расстояние между элементами. |
HSeparationOverride | int | 0 | Горизонтальное расстояние между элементами. |
ExpandBackwards | bool | false | Расширять ли сетку в обратном направлении, то есть от правого нижнего угла к левому верхнему. |
ScrollContainer
ScrollContainer — это контейнер, который показывает обрезанный вид своих дочерних элементов с необязательной прокруткой по вертикали, по горизонтали или в обоих направлениях.
| Поле | Тип | Фактическое значение по умолчанию | Описание |
|---|---|---|---|
FallbackDeltaScroll | bool | true | Если true, вертикальная прокрутка будет преобразована в горизонтальную, если вертикальная прокрутка невозможна. |
ScrollSpeedX | int | 50 | Скорость прокрутки по оси x. |
ScrollSpeedY | int | 50 | Скорость прокрутки по оси y. |
ReserveScrollbarSpace | bool | false | Будет ли полоса прокрутки занимать место в раскладке |
VScrollEnabled | bool | true | Включена ли вертикальная прокрутка. |
HScrollEnabled | bool | true | Включена ли горизонтальная прокрутка. |
LayoutContainer
LayoutContainer помогает в сложных раскладках, позволяя своим дочерним элементам указывать, как их следует размещать.
| Поле | Тип | Фактическое значение по умолчанию | Описание |
|---|---|---|---|
AnchorBegin | float | 0 | Значение якоря, находящегося в начале раскладки. |
AnchorEnd | float | 1 | Значение якоря, находящегося в конце раскладки. |
InheritChildMeasure | bool | true | Если true, измерения этого элемента управления будут как минимум размером с любой содержащийся в нём элемент управления. |
Тогда дочерние элементы LayoutContainer могут использовать следующие поля для управления своей раскладкой:
| Поле | Тип |
|---|---|
MarginLeft | float |
MarginTop | float |
MarginRight | float |
MarginBottom | float |
AnchorLeft | float |
AnchorTop | float |
AnchorRight | float |
AnchorBottom | float |
GrowHorizontal | bool |
GrowVertical | bool |