Container
База алгоритма раскладки дочерних Control.
Container управляет прямыми дочерними Control. Обычная Entity-посредник не становится элементом раскладки; TopLevel и невидимые элементы исключаются из обычной сортировки. Сам базовый Container без скрипта не задаёт полезного размещения: выберите готовый Box/Grid/Panel или реализуйте свой алгоритм.
QueueSort откладывает проход и объединяет повторные запросы. Внутри прохода сначала приходят NotificationPreSortChildren и PreSortChildren, затем NotificationSortChildren и SortChildren. Это не глобальный сигнал завершения раскладки всего дерева. Измеряйте итоговые прямоугольники после необходимых проходов.
Для собственного алгоритма FitChildInRect принимает только прямого ребёнка и локальный прямоугольник контейнера. Он учитывает ограничения/SizeFlags и сбрасывает Rotation в 0, Scale в Vector2.One. Не анимируйте эти поля прямого ребёнка в расчёте сохранить их после следующей раскладки: поместите анимируемое содержимое во внутренний Control.
Методы _GetAllowedSizeFlagsHorizontal/Vertical — callbacks списка допустимых флагов собственного контейнера. Их generated base возвращает null; прямой вызов не является запросом текущих флагов ребёнка. AccessibilityRegion меняет семантическую роль для средств доступности, а не геометрию или фокус.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
ContainerКонструктор
public Container();Создаёт базу собственного алгоритма раскладки; без реализации размещения предпочтите конкретный контейнер.
Свойства1
AccessibilityRegionСвойство
public bool AccessibilityRegion { get; set; }Флаг семантического региона для средств доступности, по умолчанию false. Не меняет геометрию/маршрут фокуса; интеграцию с экранным диктором проверяйте отдельно.
Методы6
FitChildInRectvoid
public void FitChildInRect(Control child, Rect2 rect);Размещает только прямого ребёнка Control в локальной области с учётом ограничений/SizeFlags. Сбрасывает Rotation = 0 и Scale = One. Вызывайте из собственного алгоритма, а не для борьбы с раскладкой готового контейнера.
| Имя | Тип | По умолчанию |
|---|---|---|
child | Control | — |
rect | Rect2 | — |
childНепустой прямой дочерний Control этого контейнера. Не чужой элемент и не дальний потомок.
rectПрямоугольник с неотрицательным размером в локальных координатах контейнера; итог учитывает ограничения и SizeFlags.
IsAccessibilityRegionbool
public bool IsAccessibilityRegion();Флаг семантического региона для средств доступности, по умолчанию false. Не меняет геометрию/маршрут фокуса; интеграцию с экранным диктором проверяйте отдельно.
boolТекущий bool флага, не результат проверки screen reader.
QueueSortvoid
public void QueueSort();Запрашивает отложенный проход внутри дерева; повторные запросы объединяются. Вне дерева не выполняет раскладку. Это не синхронный пересчёт и не сброс Position вручную.
SetAccessibilityRegionvoid
public void SetAccessibilityRegion(bool region);Флаг семантического региона для средств доступности, по умолчанию false. Не меняет геометрию/маршрут фокуса; интеграцию с экранным диктором проверяйте отдельно.
| Имя | Тип | По умолчанию |
|---|---|---|
region | bool | — |
regiontrue для семантической роли региона, false для обычного контейнера.
_GetAllowedSizeFlagsHorizontalint[]
public virtual int[] _GetAllowedSizeFlagsHorizontal();Callback допустимых горизонтальных значений SizeFlags для собственного контейнера. Возвращайте int[] значений enum, не флаги конкретного ребёнка. Generated base возвращает null.
int[]int[] значений вашей реализации; generated base возвращает null.
_GetAllowedSizeFlagsVerticalint[]
public virtual int[] _GetAllowedSizeFlagsVertical();Callback допустимых вертикальных значений SizeFlags собственного контейнера. Generated base возвращает null; это не getter фактической раскладки.
int[]int[] значений вашей реализации; generated base возвращает null.
Сигналы и события2
PreSortChildrenСобытие
public event Action PreSortChildren;Сигнал после NotificationPreSortChildren и перед NotificationSortChildren. Подходит для подготовки алгоритма, не для чтения окончательных размеров всего дерева.
SortChildrenСобытие
public event Action SortChildren;Сигнал после NotificationSortChildren данного контейнера. Можно реализовать своё размещение через FitChildInRect. Другие уровни иерархии ещё могут перераскладываться.
Поля и константы2
NotificationPreSortChildrenПоле
public const long NotificationPreSortChildren = 50;Код уведомления перед сортировкой детей; используйте в _Notification собственного контейнера. Затем отправляется PreSortChildren.
NotificationSortChildrenПоле
public const long NotificationSortChildren = 51;Код уведомления для размещения детей в проходе сортировки. После уведомления отправляется SortChildren. Не завершение всего UI-дерева.