MenuBar
Строка заголовков для дочерних PopupMenu с локальным или системным размещением.
Добавьте PopupMenu непосредственными детьми MenuBar. Каждый создаёт один заголовок; вложенное подменю относится к своему PopupMenu, обычный Entity/Control заголовок не создаёт. Команды добавляйте в PopupMenu и обрабатывайте его IdPressed, а не события строки заголовков.
Индекс 0…GetMenuCount()-1 — позиция среди непосредственных PopupMenu, включая hidden/disabled. Это не индекс всех детей и не ID команды. Перестановка/удаление меняет индексы. GetMenuPopup возвращает существующий дочерний объект; пока он принадлежит строке меню, не освобождайте его отдельно. RemoveChild отсоединяет без Free.
Стандартный заголовок берётся из PopupMenu.Title, а если Title пуст — из Name. SetMenuTitle задаёт отдельную подпись строки, не меняя Title/Name окна. Присваивание текущего исходного Title/Name возвращает автоматическое отслеживание. GetMenuTitle возвращает исходную строку, не обязательно её перевод на экране.
Ограничение текущей реализации: MoveChild сопоставляет запись меню по исходному заголовку. При одинаковых заголовках флаги hidden/disabled и другие данные могут перейти к другому PopupMenu. Для динамической перестановки используйте различимые исходные заголовки; если совпадение необходимо, создавайте строку сразу в конечном порядке. Совпадение переводов при разных исходных строках — отдельный случай.
PreferGlobalMenu = true — предпочтение, не гарантия системного меню. Проверяйте IsNativeMenu. Для предсказуемой строки внутри окна задайте false. В системном режиме локальный минимум равен нулю, а оформление/обработка зависят от платформы; Flat и тема локальной строки не управляют стилем ОС. StartIndex задаёт порядок размещения MenuBar в системной строке, не сдвигает локальные индексы PopupMenu.
SetMenuHidden скрывает заголовок без удаления меню. SetMenuDisabled запрещает обычное открытие/обработку сочетаний через эту строку; прямой доступ к PopupMenu и обработчикам приложения остаётся. SetDisableShortcuts выключает локальный маршрут сочетаний MenuBar, не все сочетания приложения и не гарантированно обработку системного меню.
SwitchOnHover переключает соседние меню, когда одно уже открыто; настройте до открытия. Это не открытие каждого меню при простом наведении. Language/TextDirection относятся к формированию текста, не к локали приложения. При динамической смене этих свойств повторно назначьте заголовки через SetMenuTitle(i, GetMenuTitle(i)), чтобы явно обновить их текстовые буферы.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
MenuBarКонструктор
public MenuBar();Создаёт строку: PreferGlobalMenu = true, SwitchOnHover = true, Flat = false, StartIndex = -1, Language пустой, TextDirection.Auto. FocusMode = Accessibility; заголовки появляются из дочерних PopupMenu.
Свойства6
FlatСвойство
public bool Flat { get; set; }Пропускать рисунок стилей состояний локальных заголовков, false по умолчанию. Текст и размерные поля темы сохраняются; не изменяет оформление системного меню.
LanguageСвойство
public string Language { get; set; }Язык shaping заголовков; пустой использует локаль элемента. Не меняет исходные строки/локаль приложения. Для немедленного обновления при динамической смене повторно назначьте заголовки SetMenuTitle.
PreferGlobalMenuСвойство
public bool PreferGlobalMenu { get; set; }Предпочитать системную строку меню, true по умолчанию. Требуется поддержка NativeMenu; проверяйте IsNativeMenu. false оставляет строку внутри окна. Это не признак фактического режима.
StartIndexСвойство
public int StartIndex { get; set; }Порядок размещения MenuBar в системной строке, -1 по умолчанию — добавление в конец. Не переиндексирует дочерние PopupMenu и не задаёт ID команды. В локальном режиме не меняет индексы.
SwitchOnHoverСвойство
public bool SwitchOnHover { get; set; }Переключать между заголовками при открытом меню, true по умолчанию. Настройте до открытия; обычное наведение на закрытую строку само меню не открывает.
TextDirectionСвойство
public Control.TextDirection TextDirection { get; set; }Направление shaping, Auto по умолчанию; Inherited берёт направление раскладки. Не разворачивает исходные строки. При динамической смене повторно назначьте заголовки для обновления shaping.
Методы24
GetLanguagestring
public string GetLanguage();Язык shaping заголовков; пустой использует локаль элемента. Не меняет исходные строки/локаль приложения. Для немедленного обновления при динамической смене повторно назначьте заголовки SetMenuTitle.
stringЯзык shaping либо пустая строка.
GetMenuCountint
public int GetMenuCount();Число непосредственных дочерних PopupMenu, включая hidden/disabled; не число команд внутри них.
intКоличество непосредственных PopupMenu.
GetMenuPopupPopupMenu
public PopupMenu GetMenuPopup(int menu);Возвращает общий дочерний PopupMenu по текущему индексу, null для отсутствующего/отрицательного. Не копирует объект и не открывает его.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
PopupMenuОбщий дочерний PopupMenu либо null.
GetMenuTitlestring
public string GetMenuTitle(int menu);Исходная подпись заголовка. Не является постоянным ID и может отличаться от PopupMenu.Title и перевода на экране.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
stringИсходная подпись заголовка.
GetMenuTooltipstring
public string GetMenuTooltip(int menu);Сохранённая подсказка заголовка, не текущая видимость tooltip.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
stringСохранённая подсказка заголовка.
GetStartIndexint
public int GetStartIndex();Порядок размещения MenuBar в системной строке, -1 по умолчанию — добавление в конец. Не переиндексирует дочерние PopupMenu и не задаёт ID команды. В локальном режиме не меняет индексы.
intПорядок размещения или -1 для конца.
GetTextDirectionControl.TextDirection
public Control.TextDirection GetTextDirection();Направление shaping, Auto по умолчанию; Inherited берёт направление раскладки. Не разворачивает исходные строки. При динамической смене повторно назначьте заголовки для обновления shaping.
Control.TextDirectionТекущий Control.TextDirection.
IsFlatbool
public bool IsFlat();Пропускать рисунок стилей состояний локальных заголовков, false по умолчанию. Текст и размерные поля темы сохраняются; не изменяет оформление системного меню.
boolФлаг пропуска локальных фонов состояний.
IsMenuDisabledbool
public bool IsMenuDisabled(int menu);Флаг disabled заголовка, отдельно от disabled его внутренних команд.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
boolDisabled-флаг заголовка.
public bool IsMenuHidden(int menu);Флаг скрытия заголовка; не Visible всплывающего окна PopupMenu.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
boolHidden-флаг заголовка.
IsNativeMenubool
public bool IsNativeMenu();Возвращает доступность и включённость системного режима для этой строки. В режиме редактируемой сцены он отключён. Это не то же самое, что PreferGlobalMenu.
booltrue при поддерживаемом включённом системном режиме.
IsPreferGlobalMenubool
public bool IsPreferGlobalMenu();Предпочитать системную строку меню, true по умолчанию. Требуется поддержка NativeMenu; проверяйте IsNativeMenu. false оставляет строку внутри окна. Это не признак фактического режима.
boolФлаг предпочтения системного меню.
IsSwitchOnHoverbool
public bool IsSwitchOnHover();Переключать между заголовками при открытом меню, true по умолчанию. Настройте до открытия; обычное наведение на закрытую строку само меню не открывает.
boolФлаг переключения открытых меню по наведению.
SetDisableShortcutsvoid
public void SetDisableShortcuts(bool disabled);Выключает локальную обработку сочетаний MenuBar. Не запрещает прямые действия PopupMenu и не является глобальной блокировкой ввода/системного меню. Getter в этом SDK не предоставлен.
| Имя | Тип | По умолчанию |
|---|---|---|
disabled | bool | — |
disabledВыключает локальную обработку сочетаний MenuBar. Не запрещает прямые действия PopupMenu и не является глобальной блокировкой ввода/системного меню. Getter в этом SDK не предоставлен.
SetFlatvoid
public void SetFlat(bool enabled);Пропускать рисунок стилей состояний локальных заголовков, false по умолчанию. Текст и размерные поля темы сохраняются; не изменяет оформление системного меню.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledПропускать рисунок стилей состояний локальных заголовков, false по умолчанию. Текст и размерные поля темы сохраняются; не изменяет оформление системного меню.
SetLanguagevoid
public void SetLanguage(string language);Язык shaping заголовков; пустой использует локаль элемента. Не меняет исходные строки/локаль приложения. Для немедленного обновления при динамической смене повторно назначьте заголовки SetMenuTitle.
| Имя | Тип | По умолчанию |
|---|---|---|
language | string | — |
languageЯзык shaping заголовков; пустой использует локаль элемента. Не меняет исходные строки/локаль приложения. Для немедленного обновления при динамической смене повторно назначьте заголовки SetMenuTitle.
SetMenuDisabledvoid
public void SetMenuDisabled(int menu, bool disabled);Отключает заголовок для обычного ввода и локального маршрута сочетаний. Запись/индекс/дочерний PopupMenu остаются. Не блокирует вызов пользовательского обработчика команды из кода.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
disabled | bool | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
disabledОтключает заголовок для обычного ввода и локального маршрута сочетаний. Запись/индекс/дочерний PopupMenu остаются. Не блокирует вызов пользовательского обработчика команды из кода.
public void SetMenuHidden(int menu, bool hidden);Скрывает заголовок, не удаляя PopupMenu и не меняя GetMenuCount. Это не запрет прямого доступа к объекту меню.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
hidden | bool | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
hiddenСкрывает заголовок, не удаляя PopupMenu и не меняя GetMenuCount. Это не запрет прямого доступа к объекту меню.
SetMenuTitlevoid
public void SetMenuTitle(int menu, string title);Задаёт подпись заголовка, не меняя PopupMenu.Title/Name. Совпадение с текущим исходным Title/Name возвращает автоматическое отслеживание. Повторная запись обновляет shaping.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
title | string | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
titleЗадаёт подпись заголовка, не меняя PopupMenu.Title/Name. Совпадение с текущим исходным Title/Name возвращает автоматическое отслеживание. Повторная запись обновляет shaping.
SetMenuTooltipvoid
public void SetMenuTooltip(int menu, string tooltip);Задаёт отдельную подсказку заголовка строки. Не меняет tooltip команд внутри PopupMenu.
| Имя | Тип | По умолчанию |
|---|---|---|
menu | int | — |
tooltip | string | — |
menuИндекс 0…GetMenuCount()-1; GetMenuPopup возвращает null для отсутствующего индекса.
tooltipЗадаёт отдельную подсказку заголовка строки. Не меняет tooltip команд внутри PopupMenu.
SetPreferGlobalMenuvoid
public void SetPreferGlobalMenu(bool enabled);Предпочитать системную строку меню, true по умолчанию. Требуется поддержка NativeMenu; проверяйте IsNativeMenu. false оставляет строку внутри окна. Это не признак фактического режима.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledПредпочитать системную строку меню, true по умолчанию. Требуется поддержка NativeMenu; проверяйте IsNativeMenu. false оставляет строку внутри окна. Это не признак фактического режима.
SetStartIndexvoid
public void SetStartIndex(int enabled);Порядок размещения MenuBar в системной строке, -1 по умолчанию — добавление в конец. Не переиндексирует дочерние PopupMenu и не задаёт ID команды. В локальном режиме не меняет индексы.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | int | — |
enabledЦелочисленный порядок системного размещения, -1 для конца; имя enabled в SDK не делает параметр boolean.
SetSwitchOnHovervoid
public void SetSwitchOnHover(bool enable);Переключать между заголовками при открытом меню, true по умолчанию. Настройте до открытия; обычное наведение на закрытую строку само меню не открывает.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableПереключать между заголовками при открытом меню, true по умолчанию. Настройте до открытия; обычное наведение на закрытую строку само меню не открывает.
SetTextDirectionvoid
public void SetTextDirection(Control.TextDirection direction);Направление shaping, Auto по умолчанию; Inherited берёт направление раскладки. Не разворачивает исходные строки. При динамической смене повторно назначьте заголовки для обновления shaping.
| Имя | Тип | По умолчанию |
|---|---|---|
direction | Control.TextDirection | — |
directionНаправление shaping, Auto по умолчанию; Inherited берёт направление раскладки. Не разворачивает исходные строки. При динамической смене повторно назначьте заголовки для обновления shaping.
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
font_colorColor |
Color(0.875, 0.875, 0.875, 1) |
font_disabled_colorColor |
Color(0.875, 0.875, 0.875, 0.5) |
font_focus_colorColor |
Color(0.95, 0.95, 0.95, 1) |
font_hover_colorColor |
Color(0.95, 0.95, 0.95, 1) |
font_hover_pressed_colorColor |
Color(1, 1, 1, 1) |
font_outline_colorColor | Оттенок контура текста пункта меню. По умолчанию:Color(0, 0, 0, 1) |
font_pressed_colorColor |
Color(1, 1, 1, 1) |
h_separationint | Горизонтальное пространство между пунктами меню. По умолчанию:4 |
outline_sizeint | Размер контура текста.
Примечание: При использовании шрифта с включенным 0 |
fontFont |
|
font_sizeint | Font размер текста меню. |
disabledStyleBox |
|
disabled_mirroredStyleBox |
|
hoverStyleBox |
|
hover_mirroredStyleBox |
|
hover_pressedStyleBox |
|
hover_pressed_mirroredStyleBox |
|
normalStyleBox |
|
normal_mirroredStyleBox |
|
pressedStyleBox |
Ужасно |
pressed_mirroredStyleBox |
|