TabBar
Самостоятельная полоса вкладок: записи и выбор, без управления страницами.
TabBar рисует заголовки и хранит записи вкладок. Он не создаёт страницы из дочерних Control и не управляет их Visible. Если нужны готовые страницы-контейнеры, используйте TabContainer. Для собственного переключателя храните связь вкладки с моделью/страницей в metadata и обновляйте интерфейс явно.
AddTab добавляет заголовок и необязательную иконку. SetTabCount изменяет число записей: новые имеют пустой заголовок, уменьшение отбрасывает хвост. Это не создание/удаление Entity. Индексы 0…TabCount-1 включают hidden/disabled и меняются при MoveTab/RemoveTab. Используйте собственный ID в metadata, а не сохранённый индекс. MoveTab(from, to) использует конечный индекс существующего списка; to = TabCount не является добавлением в конец, используйте TabCount - 1.
CurrentTab = -1 означает отсутствие выбора. DeselectEnabled разрешает этот режим и при доступных вкладках. Прямое присваивание CurrentTab допускает disabled/hidden; пользовательский ввод и SelectNextAvailable/SelectPreviousAvailable их пропускают. Навигация не переходит по кругу; next при -1 начинает с первой доступной, previous при -1 возвращает false.
Сигналы зависят от операции. CurrentTab испускает TabSelected, затем при смене TabChanged; повторный индекс даёт только TabSelected. MoveTab переставляет запись и корректирует current/previous без этих сигналов. Удаление перед текущей вкладкой сдвигает индекс без TabChanged; удаление самой текущей испускает TabChanged без TabSelected. SetTabCount и ClearTabs меняют состояние напрямую и обычно не уведомляют о выборе. После структурной операции явно синхронизируйте собственную страницу/модель.
Первая AddTab в дереве выбирается и уведомляет, если DeselectEnabled выключен. При создании вне дерева выбор может установиться без сигналов. Первый SetTabCount может применить ранее отложенный CurrentTab и тогда уведомить; не стройте инициализацию только на ожидании сигнала. Сначала заполните записи, задайте выбор, затем один раз явно обновите зависящий интерфейс.
SetTabHidden скрывает заголовок, но в самостоятельном TabBar не снимает текущий выбор автоматически. SetTabDisabled тоже не переключает уже выбранную вкладку. Сохраняйте бизнес-правила выбора в коде, если запрещено показывать отключённую страницу.
TabClosePressed — запрос закрытия, не команда удаления. Проверьте несохранённые данные, удалите собственную страницу/модель и вызовите RemoveTab, если закрытие разрешено. TabButtonPressed относится к отдельной иконке-кнопке, а TabClicked/TabRmbClicked — к вводу пользователя. Программный выбор не является кликом.
Metadata хранит Variant: число/строка удобны для постоянного ключа, Array/Dictionary могут оставаться общими ссылочными контейнерами. GetTabTitle возвращает исходный заголовок, хотя отображение может быть переведено. SetTabLanguage управляет shaping текста, а не локалью приложения или содержимым строки.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
TabBarКонструктор
public TabBar();Создаёт пустую полосу: TabCount = 0, CurrentTab = PreviousTab = -1, DeselectEnabled = false. Дочерние Control не становятся страницами автоматически.
Свойства15
ClipTabsСвойство
public bool ClipTabs { get; set; }Ограничивать полосу доступной шириной, true по умолчанию. При переполнении используются кнопки прокрутки и индекс смещения. false включает ширину заголовков в минимум и сбрасывает смещение; не является ClipContents дочерних элементов.
CloseWithMiddleMouseСвойство
public bool CloseWithMiddleMouse { get; set; }Разрешает запрос закрытия средней кнопкой, true по умолчанию. Не удаляет запись автоматически и не задаёт видимость кнопки закрытия.
CurrentTabСвойство
public int CurrentTab { get; set; }Индекс выбора, -1 без выбора. Прямой setter допускает hidden/disabled; для -1 нужны DeselectEnabled либо отсутствие доступных записей. Испускает TabSelected даже при том же индексе, TabChanged только при смене. Первый запрос до инициализации может откладываться.
DeselectEnabledСвойство
public bool DeselectEnabled { get; set; }Разрешает выбор -1 при доступных вкладках, false по умолчанию. Выключение при отсутствии выбора пытается выбрать следующую доступную с начала списка.
DragToRearrangeEnabledСвойство
public bool DragToRearrangeEnabled { get; set; }Разрешает пользовательскую перестановку вкладок перетаскиванием, false по умолчанию. Не запрещает MoveTab из кода; перенос между полосами дополнительно требует совпадающей TabsRearrangeGroup.
MaxTabWidthСвойство
public int MaxTabWidth { get; set; }Предел ширины для сокращения текста заголовков в пикселях, 0 по умолчанию отключает индивидуальный предел. Требуется ≥ 0. Иконки, кнопки и поля сохраняют свой минимум, поэтому полный заголовок может быть шире этого числа. Учитывается также доступный максимум раскладки.
ScrollToSelectedСвойство
public bool ScrollToSelected { get; set; }Автоматически показывать выбранный заголовок, true по умолчанию. Включение сразу вызывает EnsureTabVisible для текущего индекса. false сохраняет выбор, но не гарантирует его видимость; прямой EnsureTabVisible доступен.
ScrollingEnabledСвойство
public bool ScrollingEnabled { get; set; }Разрешает прокрутку полосы колесом/жестами ввода, true по умолчанию. Не запрещает EnsureTabVisible или автоматическую прокрутку к CurrentTab и не скрывает кнопки переполнения.
SelectWithRmbСвойство
public bool SelectWithRmb { get; set; }Разрешает выбор правой кнопкой, false по умолчанию. Сигнал TabRmbClicked и показ собственного меню — отдельные действия; программный CurrentTab не ограничивается этим флагом.
SwitchOnDragHoverСвойство
public bool SwitchOnDragHover { get; set; }Переключает заголовок после задержки наведения при перетаскивании содержимого, true по умолчанию. Не делает drop допустимым. Для перетаскивания самих вкладок этот hover-путь не применяется.
TabAlignmentСвойство
public TabBar.AlignmentMode TabAlignment { get; set; }Горизонтальное выравнивание заголовков Left/Center/Right, Left по умолчанию. Направление раскладки учитывается отдельно; это не выравнивание пользовательских страниц.
TabCloseDisplayPolicyСвойство
public TabBar.CloseButtonDisplayPolicy TabCloseDisplayPolicy { get; set; }Показ встроенной кнопки закрытия: ShowNever по умолчанию, ShowActiveOnly или ShowAlways. Нажатие сообщает TabClosePressed; удаление реализует приложение.
TabCountСвойство
public int TabCount { get; set; }Количество записей, включая hidden/disabled, 0 по умолчанию. Setter требует число ≥ 0: растит пустыми вкладками или удаляет хвост, ограничивает CurrentTab. Обычно меняет выбор без сигналов; при первом применении может выполнить отложенный CurrentTab.
TabSizingСвойство
public TabBar.SizingMode TabSizing { get; set; }Ширина заголовков, FitContent по умолчанию. Uniform берёт ширину самого широкого; Justify пропорционально растягивает ширины при свободном месте; Expand даёт равные ширины, если самый широкий помещается, иначе использует FitContent. MaxTabWidth и доступная раскладка могут дополнительно ограничивать текст.
TabsRearrangeGroupСвойство
public int TabsRearrangeGroup { get; set; }Группа переноса вкладок между TabBar; -1 по умолчанию запрещает межполосный перенос. Используйте одинаковый неотрицательный ID и DragToRearrangeEnabled у участников. Это не группа Entity или постоянный ID вкладки.
Методы62
AddTabvoid
public void AddTab(string title = "", Texture2D icon = null);Добавляет запись в конец с заголовком и необязательной общей иконкой. Если это первая вкладка и DeselectEnabled выключен, она выбирается; внутри дерева испускаются сигналы выбора. Не создаёт страницу.
| Имя | Тип | По умолчанию |
|---|---|---|
title | string | "" |
icon | Texture2D | null |
titleДобавляет запись в конец с заголовком и необязательной общей иконкой. Если это первая вкладка и DeselectEnabled выключен, она выбирается; внутри дерева испускаются сигналы выбора. Не создаёт страницу.
iconДобавляет запись в конец с заголовком и необязательной общей иконкой. Если это первая вкладка и DeselectEnabled выключен, она выбирается; внутри дерева испускаются сигналы выбора. Не создаёт страницу.
ClearTabsvoid
public void ClearTabs();Удаляет все записи и сбрасывает current/previous в -1, смещение в 0. Не испускает TabChanged/TabSelected и не удаляет дочерние Control. Обновляйте собственную страницу явно.
EnsureTabVisiblevoid
public void EnsureTabVisible(int idx);Подстраивает индекс прокрутки для указанного заголовка без изменения CurrentTab. Работает в дереве при видимых кнопках переполнения, независимо от ScrollingEnabled. Для -1, hidden или уже находящегося в окне индекса ничего не делает. Не обещает полное размещение заголовка шире полосы.
| Имя | Тип | По умолчанию |
|---|---|---|
idx | int | — |
idxИндекс записи 0…TabCount-1. GetTabRect также принимает отрицательные индексы с конца; EnsureTabVisible(-1) ничего не делает.
GetClipTabsbool
public bool GetClipTabs();Ограничивать полосу доступной шириной, true по умолчанию. При переполнении используются кнопки прокрутки и индекс смещения. false включает ширину заголовков в минимум и сбрасывает смещение; не является ClipContents дочерних элементов.
boolФлаг ограничения полосы по ширине.
GetCloseWithMiddleMousebool
public bool GetCloseWithMiddleMouse();Разрешает запрос закрытия средней кнопкой, true по умолчанию. Не удаляет запись автоматически и не задаёт видимость кнопки закрытия.
boolФлаг закрытия средней кнопкой.
GetCurrentTabint
public int GetCurrentTab();Индекс выбора, -1 без выбора. Прямой setter допускает hidden/disabled; для -1 нужны DeselectEnabled либо отсутствие доступных записей. Испускает TabSelected даже при том же индексе, TabChanged только при смене. Первый запрос до инициализации может откладываться.
intИндекс текущей записи или -1.
GetDeselectEnabledbool
public bool GetDeselectEnabled();Разрешает выбор -1 при доступных вкладках, false по умолчанию. Выключение при отсутствии выбора пытается выбрать следующую доступную с начала списка.
boolРазрешено ли явное снятие выбора.
GetDragToRearrangeEnabledbool
public bool GetDragToRearrangeEnabled();Разрешает пользовательскую перестановку вкладок перетаскиванием, false по умолчанию. Не запрещает MoveTab из кода; перенос между полосами дополнительно требует совпадающей TabsRearrangeGroup.
boolФлаг пользовательской перестановки.
GetMaxTabWidthint
public int GetMaxTabWidth();Предел ширины для сокращения текста заголовков в пикселях, 0 по умолчанию отключает индивидуальный предел. Требуется ≥ 0. Иконки, кнопки и поля сохраняют свой минимум, поэтому полный заголовок может быть шире этого числа. Учитывается также доступный максимум раскладки.
intПредел ширины текста заголовка в пикселях, 0 без него.
GetOffsetButtonsVisiblebool
public bool GetOffsetButtonsVisible();Показываются ли кнопки переполнения после расчёта геометрии. Это не настройка ScrollingEnabled и не признак того, что выбранная вкладка видна.
boolВидимость кнопок переполнения по текущей раскладке.
GetPreviousTabint
public int GetPreviousTab();Индекс до последнего присваивания выбора, с корректировкой при перестановке/удалении. Повторный выбор делает previous равным current; это не обязательно последняя другая вкладка.
intПредыдущий индекс с учётом структурных изменений.
GetScrollToSelectedbool
public bool GetScrollToSelected();Автоматически показывать выбранный заголовок, true по умолчанию. Включение сразу вызывает EnsureTabVisible для текущего индекса. false сохраняет выбор, но не гарантирует его видимость; прямой EnsureTabVisible доступен.
boolФлаг автоматического показа выбора.
GetScrollingEnabledbool
public bool GetScrollingEnabled();Разрешает прокрутку полосы колесом/жестами ввода, true по умолчанию. Не запрещает EnsureTabVisible или автоматическую прокрутку к CurrentTab и не скрывает кнопки переполнения.
boolФлаг прокрутки вводом пользователя.
GetSelectWithRmbbool
public bool GetSelectWithRmb();Разрешает выбор правой кнопкой, false по умолчанию. Сигнал TabRmbClicked и показ собственного меню — отдельные действия; программный CurrentTab не ограничивается этим флагом.
boolФлаг выбора правой кнопкой.
GetSwitchOnDragHoverbool
public bool GetSwitchOnDragHover();Переключает заголовок после задержки наведения при перетаскивании содержимого, true по умолчанию. Не делает drop допустимым. Для перетаскивания самих вкладок этот hover-путь не применяется.
boolФлаг переключения при наведении с перетаскиванием.
GetTabAlignmentTabBar.AlignmentMode
public TabBar.AlignmentMode GetTabAlignment();Горизонтальное выравнивание заголовков Left/Center/Right, Left по умолчанию. Направление раскладки учитывается отдельно; это не выравнивание пользовательских страниц.
TabBar.AlignmentModeТекущий AlignmentMode.
GetTabButtonIconTexture2D
public Texture2D GetTabButtonIcon(int tabIdx);Общая Texture2D дополнительной кнопки либо null, не основная иконка.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxИндекс записи 0…TabCount-1. GetTabRect также принимает отрицательные индексы с конца; EnsureTabVisible(-1) ничего не делает.
Texture2DОбщая Texture2D дополнительной кнопки либо null.
GetTabCloseDisplayPolicyTabBar.CloseButtonDisplayPolicy
public TabBar.CloseButtonDisplayPolicy GetTabCloseDisplayPolicy();Показ встроенной кнопки закрытия: ShowNever по умолчанию, ShowActiveOnly или ShowAlways. Нажатие сообщает TabClosePressed; удаление реализует приложение.
TabBar.CloseButtonDisplayPolicyТекущая CloseButtonDisplayPolicy.
GetTabCountint
public int GetTabCount();Количество записей, включая hidden/disabled, 0 по умолчанию. Setter требует число ≥ 0: растит пустыми вкладками или удаляет хвост, ограничивает CurrentTab. Обычно меняет выбор без сигналов; при первом применении может выполнить отложенный CurrentTab.
intКоличество записей, включая hidden/disabled.
GetTabIconTexture2D
public Texture2D GetTabIcon(int tabIdx);Возвращает общую основную иконку либо null, отдельно от дополнительной кнопки.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxИндекс записи 0…TabCount-1. GetTabRect также принимает отрицательные индексы с конца; EnsureTabVisible(-1) ничего не делает.
Texture2DОбщая основная Texture2D либо null.
GetTabIconMaxWidthint
public int GetTabIconMaxWidth(int tabIdx);Сохранённый индивидуальный предел ширины, не фактическая ширина с учётом темы.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxИндекс записи 0…TabCount-1. GetTabRect также принимает отрицательные индексы с конца; EnsureTabVisible(-1) ничего не делает.
intСохранённый индивидуальный предел в пикселях.
GetTabIdxAtPointint
public int GetTabIdxAtPoint(Vector2 point);Индекс видимого в текущем окне заголовка под локальной точкой или -1. Hidden исключаются, disabled могут возвращаться. Это геометрический поиск, не переключение и не проверка разрешения выбора.
| Имя | Тип | По умолчанию |
|---|---|---|
point | Vector2 | — |
pointТочка в локальных координатах TabBar.
intИндекс заголовка под точкой либо -1.
GetTabLanguagestring
public string GetTabLanguage(int tabIdx);Возвращает язык shaping вкладки либо пустую строку для локали элемента.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
stringЯзык shaping либо пустая строка.
GetTabMetadataVariant
public Variant GetTabMetadata(int tabIdx);Возвращает metadata Variant, Nil без назначения. Ссылочные контейнеры внутри Variant могут разделять содержимое с исходным значением.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
VariantMetadata Variant либо Nil.
GetTabOffsetint
public int GetTabOffset();Возвращает текущий индекс начала прокручиваемого окна вкладок, не смещение в пикселях. Индекс учитывает полный список, включая скрытые записи.
intНачальный индекс окна, не пиксели.
GetTabRectRect2
public Rect2 GetTabRect(int tabIdx);Возвращает прямоугольник заголовка в локальных координатах TabBar по текущему кэшу раскладки. Отрицательный индекс отсчитывается с конца (-1 — последняя запись). Прямоугольник вне текущего окна/hidden не является доказательством видимости или попадания; используйте GetTabIdxAtPoint для поиска под точкой.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxИндекс записи 0…TabCount-1. GetTabRect также принимает отрицательные индексы с конца; EnsureTabVisible(-1) ничего не делает.
Rect2Rect2 в локальных координатах полосы.
GetTabSizingTabBar.SizingMode
public TabBar.SizingMode GetTabSizing();Ширина заголовков, FitContent по умолчанию. Uniform берёт ширину самого широкого; Justify пропорционально растягивает ширины при свободном месте; Expand даёт равные ширины, если самый широкий помещается, иначе использует FitContent. MaxTabWidth и доступная раскладка могут дополнительно ограничивать текст.
TabBar.SizingModeТекущий SizingMode.
GetTabTextDirectionControl.TextDirection
public Control.TextDirection GetTabTextDirection(int tabIdx);Возвращает сохранённое направление текста заголовка, Inherited по умолчанию.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
Control.TextDirectionСохранённый Control.TextDirection.
GetTabTitlestring
public string GetTabTitle(int tabIdx);Возвращает исходный заголовок, не перевод и не постоянный ID.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
stringИсходная строка заголовка.
GetTabTooltipstring
public string GetTabTooltip(int tabIdx);Возвращает сохранённую строку подсказки.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
stringСохранённая подсказка.
GetTabsRearrangeGroupint
public int GetTabsRearrangeGroup();Группа переноса вкладок между TabBar; -1 по умолчанию запрещает межполосный перенос. Используйте одинаковый неотрицательный ID и DragToRearrangeEnabled у участников. Это не группа Entity или постоянный ID вкладки.
intID группы переноса или -1.
IsTabDisabledbool
public bool IsTabDisabled(int tabIdx);Возвращает disabled-флаг записи, отдельно от hidden и текущего выбора.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
boolDisabled-флаг записи.
public bool IsTabHidden(int tabIdx);Возвращает hidden-флаг заголовка, не видимость связанной страницы приложения.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
boolHidden-флаг записи.
MoveTabvoid
public void MoveTab(int from, int to);Перемещает всю запись с metadata/флагами на конечный индекс to, оба индекса 0…TabCount-1. Сохраняет выбранную запись, корректируя current/previous; TabChanged/TabSelected/ActiveTabRearranged сам не испускает.
| Имя | Тип | По умолчанию |
|---|---|---|
from | int | — |
to | int | — |
fromТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
toТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
RemoveTabvoid
public void RemoveTab(int tabIdx);Удаляет существующую запись. Индексы после неё сдвигаются; current/previous корректируются. Если удалена сама текущая вкладка, внутри дерева испускает TabChanged без TabSelected и ищет доступную замену. При удалении перед текущей индекс может измениться без сигнала.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
SelectNextAvailablebool
public bool SelectNextAvailable();Выбирает следующую по индексу запись без hidden/disabled. Не переходит по кругу; от -1 начинает с первой. Возвращает true при успешном выборе.
booltrue при найденной и выбранной следующей записи.
SelectPreviousAvailablebool
public bool SelectPreviousAvailable();Выбирает предыдущую по индексу запись без hidden/disabled. Не переходит по кругу; при CurrentTab = -1 возвращает false.
booltrue при найденной и выбранной предыдущей записи.
SetClipTabsvoid
public void SetClipTabs(bool clipTabs);Ограничивать полосу доступной шириной, true по умолчанию. При переполнении используются кнопки прокрутки и индекс смещения. false включает ширину заголовков в минимум и сбрасывает смещение; не является ClipContents дочерних элементов.
| Имя | Тип | По умолчанию |
|---|---|---|
clipTabs | bool | — |
clipTabsОграничивать полосу доступной шириной, true по умолчанию. При переполнении используются кнопки прокрутки и индекс смещения. false включает ширину заголовков в минимум и сбрасывает смещение; не является ClipContents дочерних элементов.
SetCloseWithMiddleMousevoid
public void SetCloseWithMiddleMouse(bool enabled);Разрешает запрос закрытия средней кнопкой, true по умолчанию. Не удаляет запись автоматически и не задаёт видимость кнопки закрытия.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledРазрешает запрос закрытия средней кнопкой, true по умолчанию. Не удаляет запись автоматически и не задаёт видимость кнопки закрытия.
SetCurrentTabvoid
public void SetCurrentTab(int tabIdx);Индекс выбора, -1 без выбора. Прямой setter допускает hidden/disabled; для -1 нужны DeselectEnabled либо отсутствие доступных записей. Испускает TabSelected даже при том же индексе, TabChanged только при смене. Первый запрос до инициализации может откладываться.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
SetDeselectEnabledvoid
public void SetDeselectEnabled(bool enabled);Разрешает выбор -1 при доступных вкладках, false по умолчанию. Выключение при отсутствии выбора пытается выбрать следующую доступную с начала списка.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledРазрешает выбор -1 при доступных вкладках, false по умолчанию. Выключение при отсутствии выбора пытается выбрать следующую доступную с начала списка.
SetDragToRearrangeEnabledvoid
public void SetDragToRearrangeEnabled(bool enabled);Разрешает пользовательскую перестановку вкладок перетаскиванием, false по умолчанию. Не запрещает MoveTab из кода; перенос между полосами дополнительно требует совпадающей TabsRearrangeGroup.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledРазрешает пользовательскую перестановку вкладок перетаскиванием, false по умолчанию. Не запрещает MoveTab из кода; перенос между полосами дополнительно требует совпадающей TabsRearrangeGroup.
SetMaxTabWidthvoid
public void SetMaxTabWidth(int width);Предел ширины для сокращения текста заголовков в пикселях, 0 по умолчанию отключает индивидуальный предел. Требуется ≥ 0. Иконки, кнопки и поля сохраняют свой минимум, поэтому полный заголовок может быть шире этого числа. Учитывается также доступный максимум раскладки.
| Имя | Тип | По умолчанию |
|---|---|---|
width | int | — |
widthПредел ширины для сокращения текста заголовков в пикселях, 0 по умолчанию отключает индивидуальный предел. Требуется ≥ 0. Иконки, кнопки и поля сохраняют свой минимум, поэтому полный заголовок может быть шире этого числа. Учитывается также доступный максимум раскладки.
SetScrollToSelectedvoid
public void SetScrollToSelected(bool enabled);Автоматически показывать выбранный заголовок, true по умолчанию. Включение сразу вызывает EnsureTabVisible для текущего индекса. false сохраняет выбор, но не гарантирует его видимость; прямой EnsureTabVisible доступен.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledАвтоматически показывать выбранный заголовок, true по умолчанию. Включение сразу вызывает EnsureTabVisible для текущего индекса. false сохраняет выбор, но не гарантирует его видимость; прямой EnsureTabVisible доступен.
SetScrollingEnabledvoid
public void SetScrollingEnabled(bool enabled);Разрешает прокрутку полосы колесом/жестами ввода, true по умолчанию. Не запрещает EnsureTabVisible или автоматическую прокрутку к CurrentTab и не скрывает кнопки переполнения.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledРазрешает прокрутку полосы колесом/жестами ввода, true по умолчанию. Не запрещает EnsureTabVisible или автоматическую прокрутку к CurrentTab и не скрывает кнопки переполнения.
SetSelectWithRmbvoid
public void SetSelectWithRmb(bool enabled);Разрешает выбор правой кнопкой, false по умолчанию. Сигнал TabRmbClicked и показ собственного меню — отдельные действия; программный CurrentTab не ограничивается этим флагом.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledРазрешает выбор правой кнопкой, false по умолчанию. Сигнал TabRmbClicked и показ собственного меню — отдельные действия; программный CurrentTab не ограничивается этим флагом.
SetSwitchOnDragHovervoid
public void SetSwitchOnDragHover(bool enabled);Переключает заголовок после задержки наведения при перетаскивании содержимого, true по умолчанию. Не делает drop допустимым. Для перетаскивания самих вкладок этот hover-путь не применяется.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledПереключает заголовок после задержки наведения при перетаскивании содержимого, true по умолчанию. Не делает drop допустимым. Для перетаскивания самих вкладок этот hover-путь не применяется.
SetTabAlignmentvoid
public void SetTabAlignment(TabBar.AlignmentMode alignment);Горизонтальное выравнивание заголовков Left/Center/Right, Left по умолчанию. Направление раскладки учитывается отдельно; это не выравнивание пользовательских страниц.
| Имя | Тип | По умолчанию |
|---|---|---|
alignment | TabBar.AlignmentMode | — |
alignmentГоризонтальное выравнивание заголовков Left/Center/Right, Left по умолчанию. Направление раскладки учитывается отдельно; это не выравнивание пользовательских страниц.
SetTabButtonIconvoid
public void SetTabButtonIcon(int tabIdx, Texture2D icon);Задаёт общую иконку дополнительной кнопки заголовка; null убирает кнопку. Она отдельна от основной иконки и встроенной кнопки закрытия. Нажатие сообщает TabButtonPressed без удаления вкладки.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
icon | Texture2D | — |
tabIdxИндекс записи 0…TabCount-1. GetTabRect также принимает отрицательные индексы с конца; EnsureTabVisible(-1) ничего не делает.
iconЗадаёт общую иконку дополнительной кнопки заголовка; null убирает кнопку. Она отдельна от основной иконки и встроенной кнопки закрытия. Нажатие сообщает TabButtonPressed без удаления вкладки.
SetTabCloseDisplayPolicyvoid
public void SetTabCloseDisplayPolicy(TabBar.CloseButtonDisplayPolicy policy);Показ встроенной кнопки закрытия: ShowNever по умолчанию, ShowActiveOnly или ShowAlways. Нажатие сообщает TabClosePressed; удаление реализует приложение.
| Имя | Тип | По умолчанию |
|---|---|---|
policy | TabBar.CloseButtonDisplayPolicy | — |
policyПоказ встроенной кнопки закрытия: ShowNever по умолчанию, ShowActiveOnly или ShowAlways. Нажатие сообщает TabClosePressed; удаление реализует приложение.
SetTabCountvoid
public void SetTabCount(int count);Количество записей, включая hidden/disabled, 0 по умолчанию. Setter требует число ≥ 0: растит пустыми вкладками или удаляет хвост, ограничивает CurrentTab. Обычно меняет выбор без сигналов; при первом применении может выполнить отложенный CurrentTab.
| Имя | Тип | По умолчанию |
|---|---|---|
count | int | — |
countКоличество записей, включая hidden/disabled, 0 по умолчанию. Setter требует число ≥ 0: растит пустыми вкладками или удаляет хвост, ограничивает CurrentTab. Обычно меняет выбор без сигналов; при первом применении может выполнить отложенный CurrentTab.
SetTabDisabledvoid
public void SetTabDisabled(int tabIdx, bool disabled);Меняет disabled-флаг для пользовательского выбора/доступной навигации. Не снимает уже текущий выбор и не запрещает прямой CurrentTab.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
disabled | bool | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
disabledМеняет disabled-флаг для пользовательского выбора/доступной навигации. Не снимает уже текущий выбор и не запрещает прямой CurrentTab.
public void SetTabHidden(int tabIdx, bool hidden);Скрывает заголовок без удаления записи. Не меняет TabCount и в самостоятельном TabBar не переключает текущий выбор автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
hidden | bool | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
hiddenСкрывает заголовок без удаления записи. Не меняет TabCount и в самостоятельном TabBar не переключает текущий выбор автоматически.
SetTabIconvoid
public void SetTabIcon(int tabIdx, Texture2D icon);Назначает общую основную Texture2D, null убирает её. Ресурс не копируется; setter обновляет геометрию и минимум. Для ограничения рисунка используйте SetTabIconMaxWidth, а не изменение исходной текстуры.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
icon | Texture2D | — |
tabIdxИндекс записи 0…TabCount-1. GetTabRect также принимает отрицательные индексы с конца; EnsureTabVisible(-1) ничего не делает.
iconНазначает общую основную Texture2D, null убирает её. Ресурс не копируется; setter обновляет геометрию и минимум. Для ограничения рисунка используйте SetTabIconMaxWidth, а не изменение исходной текстуры.
SetTabIconMaxWidthvoid
public void SetTabIconMaxWidth(int tabIdx, int width);Предел ширины основной иконки в пикселях, 0 без индивидуального предела. Положительное значение уменьшает с сохранением пропорций; более строгий icon_max_width темы имеет приоритет. Не увеличивает маленькую иконку и не меняет исходный ресурс.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
width | int | — |
tabIdxИндекс записи 0…TabCount-1. GetTabRect также принимает отрицательные индексы с конца; EnsureTabVisible(-1) ничего не делает.
widthПредел ширины основной иконки в пикселях, 0 без индивидуального предела. Положительное значение уменьшает с сохранением пропорций; более строгий icon_max_width темы имеет приоритет. Не увеличивает маленькую иконку и не меняет исходный ресурс.
SetTabLanguagevoid
public void SetTabLanguage(int tabIdx, string language);Задаёт язык shaping конкретного заголовка; пустая строка использует локаль элемента. Не переводит исходную строку и не переключает локаль приложения.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
language | string | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
languageЗадаёт язык shaping конкретного заголовка; пустая строка использует локаль элемента. Не переводит исходную строку и не переключает локаль приложения.
SetTabMetadatavoid
public void SetTabMetadata(int tabIdx, Variant metadata);Задаёт Variant-данные записи, например собственный постоянный ID. MoveTab переносит их вместе с записью. Array/Dictionary остаются общими контейнерами; копируйте их отдельно при необходимости независимых данных.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
metadata | Variant | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
metadataЗадаёт Variant-данные записи, например собственный постоянный ID. MoveTab переносит их вместе с записью. Array/Dictionary остаются общими контейнерами; копируйте их отдельно при необходимости независимых данных.
SetTabSizingvoid
public void SetTabSizing(TabBar.SizingMode tabSizing);Ширина заголовков, FitContent по умолчанию. Uniform берёт ширину самого широкого; Justify пропорционально растягивает ширины при свободном месте; Expand даёт равные ширины, если самый широкий помещается, иначе использует FitContent. MaxTabWidth и доступная раскладка могут дополнительно ограничивать текст.
| Имя | Тип | По умолчанию |
|---|---|---|
tabSizing | TabBar.SizingMode | — |
tabSizingШирина заголовков, FitContent по умолчанию. Uniform берёт ширину самого широкого; Justify пропорционально растягивает ширины при свободном месте; Expand даёт равные ширины, если самый широкий помещается, иначе использует FitContent. MaxTabWidth и доступная раскладка могут дополнительно ограничивать текст.
SetTabTextDirectionvoid
public void SetTabTextDirection(int tabIdx, Control.TextDirection direction);Задаёт направление shaping конкретного заголовка. Inherited берёт направление раскладки; Ltr/Rtl не разворачивают исходную строку.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
direction | Control.TextDirection | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
directionЗадаёт направление shaping конкретного заголовка. Inherited берёт направление раскладки; Ltr/Rtl не разворачивают исходную строку.
SetTabTitlevoid
public void SetTabTitle(int tabIdx, string title);Задаёт исходный заголовок и обновляет shaping/геометрию. Отображение может использовать перевод; индекс и metadata не меняются.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
title | string | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
titleЗадаёт исходный заголовок и обновляет shaping/геометрию. Отображение может использовать перевод; индекс и metadata не меняются.
SetTabTooltipvoid
public void SetTabTooltip(int tabIdx, string tooltip);Задаёт отдельную подсказку заголовка. Не меняет заголовок, индекс или metadata.
| Имя | Тип | По умолчанию |
|---|---|---|
tabIdx | int | — |
tooltip | string | — |
tabIdxТекущий индекс записи 0…TabCount-1; только SetCurrentTab допускает -1 для снятия выбора.
tooltipЗадаёт отдельную подсказку заголовка. Не меняет заголовок, индекс или metadata.
SetTabsRearrangeGroupvoid
public void SetTabsRearrangeGroup(int groupId);Группа переноса вкладок между TabBar; -1 по умолчанию запрещает межполосный перенос. Используйте одинаковый неотрицательный ID и DragToRearrangeEnabled у участников. Это не группа Entity или постоянный ID вкладки.
| Имя | Тип | По умолчанию |
|---|---|---|
groupId | int | — |
groupIdГруппа переноса вкладок между TabBar; -1 по умолчанию запрещает межполосный перенос. Используйте одинаковый неотрицательный ID и DragToRearrangeEnabled у участников. Это не группа Entity или постоянный ID вкладки.
Сигналы и события8
ActiveTabRearrangedСобытие
public event TabBar.ActiveTabRearrangedEventHandler ActiveTabRearranged;Уведомление пути перетаскивания о новом индексе активируемой вкладки. MoveTab из кода сам не испускает его. После перестановки заново разрешайте собственный ID через metadata.
| Имя | Тип | По умолчанию |
|---|---|---|
idxTo | long | — |
idxToИндекс вкладки на момент уведомления; не постоянный ID.
TabButtonPressedСобытие
public event TabBar.TabButtonPressedEventHandler TabButtonPressed;Нажата дополнительная кнопка SetTabButtonIcon. Это отдельный сигнал от TabClosePressed; автоматического удаления нет.
| Имя | Тип | По умолчанию |
|---|---|---|
tab | long | — |
tabИндекс записи на момент события; уведомления выбора могут передать -1.
TabChangedСобытие
public event TabBar.TabChangedEventHandler TabChanged;Уведомление пути CurrentTab при смене выбора или RemoveTab при удалении текущей записи. Не универсальный наблюдатель индекса: MoveTab, ClearTabs и обычный SetTabCount могут менять состояние без сигнала. -1 означает отсутствие выбора.
| Имя | Тип | По умолчанию |
|---|---|---|
tab | long | — |
tabИндекс записи на момент события; уведомления выбора могут передать -1.
TabClickedСобытие
public event TabBar.TabClickedEventHandler TabClicked;Пользователь кликнул вкладку. Программный CurrentTab не вызывает сигнал; повторный клик может не менять выбор.
| Имя | Тип | По умолчанию |
|---|---|---|
tab | long | — |
tabИндекс записи на момент события; уведомления выбора могут передать -1.
TabClosePressedСобытие
public event TabBar.TabClosePressedEventHandler TabClosePressed;Запрос закрытия от кнопки/разрешённого среднего клика. Сам не удаляет запись. Проверьте возможность закрытия, затем явно удалите модель/страницу и вызовите RemoveTab.
| Имя | Тип | По умолчанию |
|---|---|---|
tab | long | — |
tabИндекс записи на момент события; уведомления выбора могут передать -1.
TabHoveredСобытие
public event TabBar.TabHoveredEventHandler TabHovered;Указатель вошёл в другой заголовок. Не является выбором; при уходе с полосы отдельное событие с -1 не гарантируется. Disabled-заголовок также может участвовать в геометрии наведения.
| Имя | Тип | По умолчанию |
|---|---|---|
tab | long | — |
tabИндекс вкладки на момент уведомления; не постоянный ID.
TabRmbClickedСобытие
public event TabBar.TabRmbClickedEventHandler TabRmbClicked;Клик правой кнопкой по вкладке. SelectWithRmb отдельно определяет выбор правой кнопкой; сигнал можно использовать для собственного контекстного меню.
| Имя | Тип | По умолчанию |
|---|---|---|
tab | long | — |
tabИндекс записи на момент события; уведомления выбора могут передать -1.
TabSelectedСобытие
public event TabBar.TabSelectedEventHandler TabSelected;Запрос выбора CurrentTab, включая повторный индекс и программный вызов. При смене приходит перед TabChanged. Структурные MoveTab/RemoveTab/ClearTabs/обычный SetTabCount не обязаны его испускать.
| Имя | Тип | По умолчанию |
|---|---|---|
tab | long | — |
tabИндекс записи на момент события; уведомления выбора могут передать -1.
TabBar.AlignmentMode
| Значение | Описание |
|---|---|
Center = 1 | Выравнивает вкладки посередине. |
Left = 0 | Выравнивает вкладки по левому краю. |
Max = 3 | Представляет размер перечисления |
Right = 2 | Выравнивает вкладки по правому краю. |
TabBar.CloseButtonDisplayPolicy
| Значение | Описание |
|---|---|
Max = 3 | Представляет размер перечисления |
ShowActiveOnly = 1 | Показывать кнопку закрытия только на активной в данный момент вкладке. |
ShowAlways = 2 | Показывать кнопку закрытия на всех вкладках. Закрыть БУТТОН_МАКС |
ShowNever = 0 | Никогда не показывать кнопки закрытия. |
TabBar.SizingMode
| Значение | Описание |
|---|---|
Expand = 3 | Размеры вкладок равны, расширяя до полной ширины панели вкладок, если есть место, в противном случае опускайтесь обратно |
FitContent = 0 | Размеры вкладок в зависимости от размера их содержания. |
Justify = 2 | Размер вкладок индивидуально соответствует их содержанию, расширяя до полной ширины панели вкладок. |
Max = 4 | Представляет собой размер |
Uniform = 1 | Вкладки размера равномерно, причем самая широкая вкладка определяет размер всех вкладок. Это может вызвать вырезку раньше, чем другие режимы калибровки из-за увеличения размеров вкладок. |
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
drop_mark_colorColor | Цвет модуляции для значка Color(1, 1, 1, 1) |
font_disabled_colorColor | Font Цвет отключённых вкладок. По умолчанию:Color(0.875, 0.875, 0.875, 0.5) |
font_hovered_colorColor | Font Цвет текущей вкладки. Не применяется к выбранной вкладке. По умолчанию:Color(0.95, 0.95, 0.95, 1) |
font_outline_colorColor | Оттенок контура текста названия вкладки. По умолчанию:Color(0, 0, 0, 1) |
font_selected_colorColor | Font Цвет выбранной в настоящее время вкладки. По умолчанию:Color(0.95, 0.95, 0.95, 1) |
font_unselected_colorColor | Font Цвет другой, невыбранных вкладок. По умолчанию:Color(0.7, 0.7, 0.7, 1) |
icon_disabled_colorColor | Цвет значков отключенных вкладок. По умолчанию:Color(1, 1, 1, 1) |
icon_hovered_colorColor | Цвет значка текущей вкладки, на которую наведен курсор. Не применяется к выбранной вкладке. По умолчанию:Color(1, 1, 1, 1) |
icon_selected_colorColor | Цвет значка текущей выбранной вкладки. По умолчанию:Color(1, 1, 1, 1) |
icon_unselected_colorColor | Цвет значков других, невыбранных вкладок. По умолчанию:Color(1, 1, 1, 1) |
h_separationint | Горизонтальное разделение между элементами внутри вкладок. По умолчанию:4 |
hover_switch_wait_msecint | При перетаскивании элементов это количество миллисекунд, которое нужно подождать перед переключением вкладки. По умолчанию:500 |
icon_max_widthint | Максимально допустимая ширина значка вкладки. Это ограничение применяется поверх размера значка по умолчанию, но до значения, установленного с помощью 0 |
outline_sizeint | Размер контура текста вкладки.
Примечание: При использовании шрифта с включенным 0 |
tab_separationint | Пространство между вкладками на панели вкладок. По умолчанию:0 |
fontFont | Шрифт, используемый для отображения названий вкладок. |
font_sizeint | Font Размер имени вкладок. |
closeTexture2D | Значок для кнопки закрытия (см. |
decrementTexture2D | Значок для кнопки со стрелкой влево, которая появляется, когда вкладок слишком много, чтобы поместиться в ширину контейнера. Когда кнопка отключена (т.е. видна первая вкладка), она выглядит полупрозрачной. |
decrement_highlightTexture2D | Значок для кнопки со стрелкой влево, которая появляется, когда вкладок слишком много, чтобы поместиться в ширину контейнера. Используется, когда на кнопку наведен курсор. |
drop_markTexture2D | Значок, показывающий, куда будет помещена перетаскиваемая вкладка (см. |
incrementTexture2D | Значок для кнопки со стрелкой вправо, которая появляется, когда вкладок слишком много, чтобы вписаться в ширину контейнера. Когда кнопка отключена (т.е. видна последняя вкладка), она становится полупрозрачной. |
increment_highlightTexture2D | Значок для кнопки со стрелкой вправо, которая появляется, когда вкладок слишком много, чтобы поместиться в ширину контейнера. Используется, когда на кнопку наведен курсор. |
drag_ended_soundAudioStream | Играть, когда вкладку затаскивают, чтобы переставить. Слышно только, если |
drag_started_soundAudioStream | Играет, когда вкладка начинает тянуться, чтобы переделать её. Слышно только, если Сосредоточься. |
focus_soundAudioStream | Играл, когда это |
hover_soundAudioStream | Играет, когда вкладка зависает с мышкой. |
pressed_disabled_soundAudioStream | Воспроизводится при нажатии кнопки закрытия вкладки во время выключения вкладки или при нажатии предыдущих/следующих кнопок на вкладке когда уже в начале/конца списка. |
pressed_soundAudioStream | Воспроизведение при нажатии кнопок на вкладке или предыдущих/следующих кнопок. |
button_highlightStyleBox | Фон вкладки и кнопок закрытия при наведении на них курсора. |
button_pressedStyleBox | Фон вкладки и кнопки закрытия при нажатии. |
tab_disabledStyleBox | Стиль отключенных вкладок. |
tab_focusStyleBox |
|
tab_hoveredStyleBox | Стиль текущей наведенной вкладки. Не применяется к выбранной вкладке.
Примечание: Этот стиль будет отрисован с той же шириной, что и |
tab_selectedStyleBox | Стиль текущей выбранной вкладки. |
tab_unselectedStyleBox | Стиль остальных, невыбранных вкладок. |