reckfellENGINE

FlowContainer

Раскладка с переносом на новые строки или колонки.

На этой странице
class FlowContainerReckfellSharpНаследует Container

FlowContainer переносит подходящие прямые дочерние Control по доступной длине: горизонтальный режим создаёт строки, вертикальный — колонки. Это отличается от GridContainer с фиксированным числом столбцов. У базового FlowContainer ось изменяема; HFlowContainer/VFlowContainer фиксируют её и отклоняют SetVertical.

На перенос влияют доступный размер, desired/minimum/maximum детей, SizeFlags и theme-константы h_separation/v_separation. Размеры строк/колонок могут различаться. Обычная Entity-посредник, TopLevel и скрытый Control не становятся обычными элементами раскладки. Ручной Position ребёнка заменяется контейнером.

Alignment задаёт положение свободного места в линии. LastWrapAlignment отдельно выравнивает последнюю неполную линию относительно предыдущей, если это не первая линия; Inherit использует основное выравнивание. Например, при ширине 45 и двух элементах по 20 в предыдущей строке End ставит последний элемент шириной 20 в X = 20, а не 25. Пример предполагает LTR и нулевые промежутки.

ReverseFill меняет направление заполнения поперёк основного потока: горизонтальные строки могут идти снизу вверх, вертикальные колонки — с противоположного края с учётом RTL. Порядок детей в дереве от этого не меняется.

GetLineCount читает кэш предыдущей раскладки: после resize дождитесь сортировки. В HFlow это число строк, в VFlow — колонок. Это не число детей и не надёжная проверка пустоты: у пустого видимого контейнера после прохода может быть одна пустая линия; скрытый контейнер может сохранять старый кэш.

Общие правила контейнеров.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

FlowContainerКонструктор
# FlowContainer
C#
public FlowContainer();

Создаёт изменяемый горизонтальный Flow: Alignment = Begin, LastWrapAlignment = Inherit, ReverseFill = false. Перенос появится при ограниченной доступной длине.

Свойства4

AlignmentСвойство
# Alignment
C#
public FlowContainer.AlignmentMode Alignment { get; set; }

Основное Begin/Center/End-выравнивание свободного места линии, Begin по умолчанию. Не равно выравниванию отдельного Control и не фиксирует число элементов.

LastWrapAlignmentСвойство
# LastWrapAlignment
C#
public FlowContainer.LastWrapAlignmentMode LastWrapAlignment { get; set; }

Выравнивание последней неполной линии относительно предыдущей, если это не первая линия. Inherit использует Alignment. Не следует считать End безусловным правым/нижним краем всего контейнера.

ReverseFillСвойство
# ReverseFill
C#
public bool ReverseFill { get; set; }

Меняет направление заполнения строк/колонок поперёк основной оси, false по умолчанию. Не переставляет детей в дереве; поведение по горизонтали учитывает RTL.

VerticalСвойство
# Vertical
C#
public bool Vertical { get; set; }

false для строк, true для колонок. Меняется только у базового FlowContainer. Любой вызов setter у HFlowContainer/VFlowContainer отклоняется.

Методы9

GetAlignmentFlowContainer.AlignmentMode
# GetAlignment
C#
public FlowContainer.AlignmentMode GetAlignment();

Основное Begin/Center/End-выравнивание свободного места линии, Begin по умолчанию. Не равно выравниванию отдельного Control и не фиксирует число элементов.

Возвращает FlowContainer.AlignmentMode

Текущее значение настройки; не результат полной раскладки.

GetLastWrapAlignmentFlowContainer.LastWrapAlignmentMode
# GetLastWrapAlignment
C#
public FlowContainer.LastWrapAlignmentMode GetLastWrapAlignment();

Выравнивание последней неполной линии относительно предыдущей, если это не первая линия. Inherit использует Alignment. Не следует считать End безусловным правым/нижним краем всего контейнера.

Возвращает FlowContainer.LastWrapAlignmentMode

Текущее значение настройки; не результат полной раскладки.

GetLineCountint
# GetLineCount
C#
public int GetLineCount();

Возвращает кэш числа линий последней раскладки: строки по горизонтали, колонки по вертикали. Может быть устаревшим после resize/скрытия; у пустого контейнера после прохода возможно 1. Не используйте как число детей.

Возвращает int

Кэшированное число линий, не гарантированное текущее число элементов/строк на экране.

IsReverseFillbool
# IsReverseFill
C#
public bool IsReverseFill();

Меняет направление заполнения строк/колонок поперёк основной оси, false по умолчанию. Не переставляет детей в дереве; поведение по горизонтали учитывает RTL.

Возвращает bool

Текущее значение настройки; не результат полной раскладки.

IsVerticalbool
# IsVertical
C#
public bool IsVertical();

false для строк, true для колонок. Меняется только у базового FlowContainer. Любой вызов setter у HFlowContainer/VFlowContainer отклоняется.

Возвращает bool

Текущее значение настройки; не результат полной раскладки.

SetAlignmentvoid
# SetAlignment
C#
public void SetAlignment(FlowContainer.AlignmentMode alignment);

Основное Begin/Center/End-выравнивание свободного места линии, Begin по умолчанию. Не равно выравниванию отдельного Control и не фиксирует число элементов.

Параметры
ИмяТипПо умолчанию
alignmentFlowContainer.AlignmentMode—
alignment

Begin, Center или End с учётом направления потока и RTL.

SetLastWrapAlignmentvoid
# SetLastWrapAlignment
C#
public void SetLastWrapAlignment(FlowContainer.LastWrapAlignmentMode lastWrapAlignment);

Выравнивание последней неполной линии относительно предыдущей, если это не первая линия. Inherit использует Alignment. Не следует считать End безусловным правым/нижним краем всего контейнера.

Параметры
ИмяТипПо умолчанию
lastWrapAlignmentFlowContainer.LastWrapAlignmentMode—
lastWrapAlignment

Inherit либо Begin/Center/End относительно предыдущей линии.

SetReverseFillvoid
# SetReverseFill
C#
public void SetReverseFill(bool reverseFill);

Меняет направление заполнения строк/колонок поперёк основной оси, false по умолчанию. Не переставляет детей в дереве; поведение по горизонтали учитывает RTL.

Параметры
ИмяТипПо умолчанию
reverseFillbool—
reverseFill

true меняет поперечное направление заполнения; false оставляет обычное.

SetVerticalvoid
# SetVertical
C#
public void SetVertical(bool vertical);

false для строк, true для колонок. Меняется только у базового FlowContainer. Любой вызов setter у HFlowContainer/VFlowContainer отклоняется.

Параметры
ИмяТипПо умолчанию
verticalbool—
vertical

Ось только базового FlowContainer: true — колонки, false — строки.

FlowContainer.AlignmentMode

ЗначениеОписание
Begin = 0

Дочерние элементы управления будут расположены в начале контейнера, т. е. сверху, если ориентация вертикальная, слева, если ориентация горизонтальная (справа для макета RTL).

Center = 1

Дочерние элементы управления будут размещены в центре контейнера.

End = 2

Дочерние элементы управления будут располагаться в конце контейнера, т. е. внизу, если ориентация вертикальная, справа, если ориентация горизонтальная (слева для макета RTL).

Последний_WRAP_ALGENT_INHERIRT

FlowContainer.LastWrapAlignmentMode

ЗначениеОписание
Begin = 1

Последняя частично заполненная строка или столбец будут перенесены и выровнены по началу предыдущей строки или столбца.

Center = 2

Последняя частично заполненная строка или столбец будут перенесены и выровнены по центру предыдущей строки или столбца.

End = 3

Последняя частично заполненная строка или столбец будут перенесены и выровнены по концу предыдущей строки или столбца.

Inherit = 0

Последняя частично заполненная строка или столбец будут перенесены и выровнены относительно предыдущей строки или столбца в соответствии с FlowContainer.Alignment.

Свойства темы

Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.

Ключ и типОписание
h_separation
int

Горизонтальное разделение дочерних узлов.

По умолчанию: 4
v_separation
int

Вертикальное разделение дочерних узлов.

По умолчанию: 4
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.