PopupMenu
Всплывающее меню команд с отдельными индексами, ID и хранимыми состояниями пунктов.
Добавляйте команды через AddItem, AddCheckItem, AddRadioCheckItem или AddMultistateItem. MenuBar/MenuButton могут открывать это окно, но действие приложения обрабатывайте в PopupMenu.IdPressed. Само меню не сохраняет проект и не выполняет команду по названию.
Индекс — позиция 0…ItemCount-1, включая разделители. ID — отдельное число команды. Для обычного добавления id = -1 назначает текущий индекс; дальнейшее удаление не перенумеровывает ID. У AddSeparator значение -1 сохраняется как -1. Используйте собственные уникальные неотрицательные ID: дубликаты разрешены, GetItemIndex возвращает первый, а отрицательный сохранённый ID при активации заменяется текущим индексом.
После RemoveItem или SetItemIndex заново разрешайте индекс через GetItemIndex(id) и проверяйте результат -1. Не передавайте -1 в getter как «последний элемент»: большинство getters требуют обычный индекс. Рассмотренные SetItem* принимают отрицательные индексы с конца, но ToggleItemChecked/ToggleItemMultistate и RemoveItem — нет.
Активация испускает IdPressed, затем IndexPressed. Используйте один канал для выполнения действия, иначе можно выполнить команду дважды. Обработчик IdPressed уже может изменить список, поэтому IndexPressed нельзя считать новым поиском той же команды после изменения. Программные setters флагов/текста не активируют пункт.
Check/radio — тип рисунка и хранимое состояние, а не автоматический переключатель. Активация не меняет Checked, radio-пункты не исключают соседей. В IdPressed обновите модель, затем явно задайте SetItemChecked для нужных индексов. Indeterminate — отдельный флаг: ToggleItemChecked его не сбрасывает; при обычном двоичном выборе сбросьте Indeterminate явно.
Multistate также хранится отдельно от активации: вызывайте ToggleItemMultistate или SetItemMultistate в обработчике. Проверяйте maxStates > 0 и 0 ≤ state < maxStates сами; изменение максимума не нормализует текущий state.
ActivateItemByEvent — прямой поиск совпадения Shortcut/акселератора, не полноценная доставка ввода. Для вызова из собственного обработчика фильтруйте нажатие и повтор: совпадающее отпускание клавиши тоже может активировать акселератор. Disabled и ShortcutDisabled исключают пункт. forGlobalOnly ограничивает Shortcut, но не исключает обычные акселераторы.
Clear() и Clear(false) удаляют записи, сохраняя дочерние подменю. Clear(true) отсоединяет и планирует освобождение подменю, на которые ссылаются текущие записи; ранее оставленные, уже не привязанные к пунктам дети не удаляются этим условием. Для подменю предпочитайте AddSubmenuEntityItem/GetItemSubmenuEntity: родителем становится это меню, если объект был без родителя. Не делите одно подменю между несколькими владельцами.
HideOnItemSelection и HideOnCheckableItemSelection по умолчанию true, HideOnStateItemSelection — false. Эти настройки скрытия не переключают состояние и не подтверждают успешное выполнение команды. MenuChanged также не является универсальным наблюдателем каждой записи: например, SetItemAsSeparator его не испускает.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
PopupMenuКонструктор
public PopupMenu();Создаёт пустое скрытое меню. HideOnItemSelection/HideOnCheckableItemSelection включены, HideOnStateItemSelection выключен. Добавление записей само их не активирует.
Свойства14
AllowSearchСвойство
public bool AllowSearch { get; set; }Разрешает переход по начальным буквам исходного текста пунктов, true по умолчанию. Это навигация, не выполнение команды и не поле фильтра. Когда строка поиска меню видна, этот режим буквенной навигации не используется.
HideOnCheckableItemSelectionСвойство
public bool HideOnCheckableItemSelection { get; set; }Скрывать при активации check/radio-пункта, true по умолчанию. Сам checked не переключается.
HideOnItemSelectionСвойство
public bool HideOnItemSelection { get; set; }Скрывать при активации обычной команды, true по умолчанию. Не включает/не выключает выполнение обработчиков.
HideOnStateItemSelectionСвойство
public bool HideOnStateItemSelection { get; set; }Скрывать при активации multistate-пункта, false по умолчанию. Не изменяет state.
ItemCountСвойство
public int ItemCount { get; set; }Число записей, включая разделители. Setter требует ≥ 0; рост добавляет пустые записи с ID по индексу, уменьшение отбрасывает хвост. Это не управление временем жизни всех дочерних подменю.
PreferNativeMenuСвойство
public bool PreferNativeMenu { get; set; }Если true, MenuBar будет использовать собственное меню, если поддерживается.
Примечание: Если PopupMenu связан с StatusIndicator, MenuBar или другим элементом PopupMenu, он может использовать собственное меню независимо от этого свойства, используйте PopupMenu.IsNativeMenu, чтобы проверить это.
SearchBarEnabledСвойство
public bool SearchBarEnabled { get; set; }Разрешает строку фильтра меню, false по умолчанию. Она показывается при достижении SearchBarMinItemCount; разделители в порог не входят. Пока строка видна, буквенная навигация AllowSearch не используется. Это настройка локального меню, не обещание аналогичного поля в системном меню ОС.
SearchBarFuzzySearchEnabledСвойство
public bool SearchBarFuzzySearchEnabled { get; set; }Разрешает нечёткое сопоставление в строке поиска, true по умолчанию. При false используются точные токены алгоритма, а не обещание побайтового равенства всей строки. Поиск использует исходные подписи пунктов и подменю.
SearchBarFuzzySearchMaxMissesСвойство
public int SearchBarFuzzySearchMaxMisses { get; set; }Допуск пропусков алгоритма нечёткого поиска: целое 0 или больше, по умолчанию 2. Это настройка сопоставления, не лимит результатов и не гарантированное расстояние Левенштейна.
SearchBarMinItemCountСвойство
public int SearchBarMinItemCount { get; set; }Минимальное число пунктов без разделителей для показа включённой строки поиска. Допустимо 0 и больше, по умолчанию 0. Не удаляет записи и не меняет ID.
ShrinkHeightСвойство
public bool ShrinkHeight { get; set; }При подготовке локального popup подгонять высоту к рассчитанному минимуму содержимого, true по умолчанию. false сохраняет запрошенную высоту с учётом ограничений окна. Setter сам не открывает и не перестраивает показанное окно.
ShrinkWidthСвойство
public bool ShrinkWidth { get; set; }При подготовке локального popup подгонять ширину к рассчитанному минимуму содержимого, true по умолчанию. false сохраняет запрошенную ширину с учётом ограничений окна. Setter сам не открывает меню.
SubmenuPopupDelayСвойство
public float SubmenuPopupDelay { get; set; }Задержка открытия подменю при наведении, в секундах; по умолчанию 0,2. Значение ≤ 0 заменяется на 0,01; положительное меньше 0,01 сохраняется. Не означает нулевую задержку и не запускает открытие само по себе.
SystemMenuIdСвойство
public NativeMenu.SystemMenus SystemMenuId { get; set; }Если установлено одно из значений NativeMenu.SystemMenus, это PopupMenu привязано к специальному системному меню. Только одно PopupMenu может быть привязано к каждому специальному меню одновременно.
Методы109
ActivateItemByEventbool
public bool ActivateItemByEvent(InputEvent @event, bool forGlobalOnly = false);Прямо ищет совпадение Shortcut/акселератора и активирует первый подходящий пункт. Вызывающий код должен фильтровать нажатие/echo; совпадающее отпускание тоже может активировать акселератор. Учитывает Disabled и ShortcutDisabled. forGlobalOnly ограничивает Shortcut, не обычные акселераторы.
| Имя | Тип | По умолчанию |
|---|---|---|
event | InputEvent | — |
forGlobalOnly | bool | false |
eventНенулевое событие; вызывающий код фильтрует нажатие и повтор перед передачей.
forGlobalOnlyОграничивать Shortcut глобальными; обычные акселераторы этим фильтром не исключаются.
booltrue при найденном и активированном совпадении.
AddCheckItemvoid
public void AddCheckItem(string label, int id = -1, Key accel = Key.None);Добавляет checkbox-пункт, изначально unchecked. Активация не переключает checked; обработчик должен обновить модель и SetItemChecked.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | — |
id | int | -1 |
accel | Key | Key.None |
labelДобавляет checkbox-пункт, изначально unchecked. Активация не переключает checked; обработчик должен обновить модель и SetItemChecked.
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
accelДобавляет checkbox-пункт, изначально unchecked. Активация не переключает checked; обработчик должен обновить модель и SetItemChecked.
AddCheckShortcutvoid
public void AddCheckShortcut(Shortcut shortcut, int id = -1, bool global = false);Добавляет checkbox-команду с общим Shortcut и текстом из ResourceName. Начальное состояние выключено; активация сама не переключает checked. Обновляйте модель и SetItemChecked в IdPressed. Повтор echo отключён.
| Имя | Тип | По умолчанию |
|---|---|---|
shortcut | Shortcut | — |
id | int | -1 |
global | bool | false |
shortcutНенулевой общий Shortcut с нужными Events; ResourceName копируется в начальный текст пункта.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
AddIconCheckItemvoid
public void AddIconCheckItem(Texture2D texture, string label, int id = -1, Key accel = Key.None);Добавляет checkbox-команду с исходным label, общей иконкой и необязательным акселератором. Начальное состояние выключено, активация не переключает его. Используйте SetItemChecked в IdPressed. id = -1 назначает текущий индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
label | string | — |
id | int | -1 |
accel | Key | Key.None |
textureОбщая Texture2D иконки; ресурс не копируется.
labelИсходный текст команды, отдельно от ID и сочетания клавиш.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
accelКлавиша с модификаторами; Key.None отключает акселератор. Это не объект Shortcut.
AddIconCheckShortcutvoid
public void AddIconCheckShortcut(Texture2D texture, Shortcut shortcut, int id = -1, bool global = false);Добавляет checkbox-команду с общей иконкой и Shortcut; текст копируется из ResourceName. Активация не меняет checked, повтор echo отключён. Состояние задавайте явно в IdPressed.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
shortcut | Shortcut | — |
id | int | -1 |
global | bool | false |
textureОбщая Texture2D иконки; ресурс не копируется.
shortcutНенулевой общий Shortcut с нужными Events; ResourceName копируется в начальный текст пункта.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
AddIconItemvoid
public void AddIconItem(Texture2D texture, string label, int id = -1, Key accel = Key.None);Добавляет обычную команду с исходным label и общей Texture2D. accel задаёт отдельный клавишный акселератор; Key.None отключает его. id = -1 назначает текущий индекс. Это не Shortcut-ресурс и не переключаемый пункт.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
label | string | — |
id | int | -1 |
accel | Key | Key.None |
textureОбщая Texture2D иконки; ресурс не копируется.
labelИсходный текст команды, отдельно от ID и сочетания клавиш.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
accelКлавиша с модификаторами; Key.None отключает акселератор. Это не объект Shortcut.
AddIconRadioCheckItemvoid
public void AddIconRadioCheckItem(Texture2D texture, string label, int id = -1, Key accel = Key.None);Добавляет radio-команду с исходным label, общей иконкой и необязательным акселератором. Начальное состояние выключено; переключение и взаимоисключение задаёт приложение. id = -1 назначает текущий индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
label | string | — |
id | int | -1 |
accel | Key | Key.None |
textureОбщая Texture2D иконки; ресурс не копируется.
labelИсходный текст команды, отдельно от ID и сочетания клавиш.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
accelКлавиша с модификаторами; Key.None отключает акселератор. Это не объект Shortcut.
AddIconRadioCheckShortcutvoid
public void AddIconRadioCheckShortcut(Texture2D texture, Shortcut shortcut, int id = -1, bool global = false);Добавляет radio-команду с общей иконкой и Shortcut; текст копируется из ResourceName. Активация не меняет checked и не снимает соседние radio-флажки; повтор echo отключён.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
shortcut | Shortcut | — |
id | int | -1 |
global | bool | false |
textureОбщая Texture2D иконки; ресурс не копируется.
shortcutНенулевой общий Shortcut с нужными Events; ResourceName копируется в начальный текст пункта.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
AddIconShortcut2 перегрузки
public void AddIconShortcut(Texture2D texture, Shortcut shortcut, int id, bool global);Короткая перегрузка добавляет команду с allowEcho = false. Для явной политики повтора используйте перегрузку с allowEcho. Текст копируется из ResourceName; global не означает системную горячую клавишу.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
shortcut | Shortcut | — |
id | int | — |
global | bool | — |
textureОбщая Texture2D иконки; ресурс не копируется.
shortcutНенулевой общий Shortcut с нужными Events; ResourceName копируется в начальный текст пункта.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
public void AddIconShortcut(Texture2D texture, Shortcut shortcut, int id = -1, bool global = false, bool allowEcho = false);Добавляет обычную команду с иконкой и общим Shortcut. Текст копируется из ResourceName, это не checkbox. global не регистрирует системную горячую клавишу. Повтор разрешается только allowEcho = true; по умолчанию false. Ресурсы иконки и Shortcut не копируются.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
shortcut | Shortcut | — |
id | int | -1 |
global | bool | false |
allowEcho | bool | false |
textureОбщая Texture2D иконки; ресурс не копируется.
shortcutНенулевой общий Shortcut с нужными Events; ResourceName копируется в начальный текст пункта.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
allowEchoРазрешить повторные echo-события; false по умолчанию.
AddItemvoid
public void AddItem(string label, int id = -1, Key accel = Key.None);Добавляет команду с текстом, ID и необязательным акселератором. id = -1 назначает текущий индекс; для стабильной команды задайте уникальный неотрицательный ID.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | — |
id | int | -1 |
accel | Key | Key.None |
labelДобавляет команду с текстом, ID и необязательным акселератором. id = -1 назначает текущий индекс; для стабильной команды задайте уникальный неотрицательный ID.
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
accelДобавляет команду с текстом, ID и необязательным акселератором. id = -1 назначает текущий индекс; для стабильной команды задайте уникальный неотрицательный ID.
AddMultistateItemvoid
public void AddMultistateItem(string label, int maxStates, int defaultState = 0, int id = -1, Key accel = Key.None);Добавляет пункт с числом и начальным индексом состояний. Проверяйте maxStates > 0 и диапазон defaultState. Активация не увеличивает state автоматически.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | — |
maxStates | int | — |
defaultState | int | 0 |
id | int | -1 |
accel | Key | Key.None |
labelДобавляет пункт с числом и начальным индексом состояний. Проверяйте maxStates > 0 и диапазон defaultState. Активация не увеличивает state автоматически.
maxStatesДобавляет пункт с числом и начальным индексом состояний. Проверяйте maxStates > 0 и диапазон defaultState. Активация не увеличивает state автоматически.
defaultStateДобавляет пункт с числом и начальным индексом состояний. Проверяйте maxStates > 0 и диапазон defaultState. Активация не увеличивает state автоматически.
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
accelДобавляет пункт с числом и начальным индексом состояний. Проверяйте maxStates > 0 и диапазон defaultState. Активация не увеличивает state автоматически.
AddRadioCheckItemvoid
public void AddRadioCheckItem(string label, int id = -1, Key accel = Key.None);Добавляет radio-пункт, изначально unchecked. Не создаёт группу взаимоисключения; снимайте флаги остальных вариантов самостоятельно.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | — |
id | int | -1 |
accel | Key | Key.None |
labelДобавляет radio-пункт, изначально unchecked. Не создаёт группу взаимоисключения; снимайте флаги остальных вариантов самостоятельно.
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
accelДобавляет radio-пункт, изначально unchecked. Не создаёт группу взаимоисключения; снимайте флаги остальных вариантов самостоятельно.
AddRadioCheckShortcutvoid
public void AddRadioCheckShortcut(Shortcut shortcut, int id = -1, bool global = false);Добавляет radio-команду с общим Shortcut и текстом из ResourceName. Начальное состояние выключено; ни автоматического переключения, ни исключения соседних radio-пунктов нет. Устанавливайте нужные состояния в IdPressed. Повтор echo отключён.
| Имя | Тип | По умолчанию |
|---|---|---|
shortcut | Shortcut | — |
id | int | -1 |
global | bool | false |
shortcutНенулевой общий Shortcut с нужными Events; ResourceName копируется в начальный текст пункта.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
AddSeparatorvoid
public void AddSeparator(string label = "", int id = -1);Добавляет разделитель, который занимает индекс, но не является командой активации. id сохраняется напрямую: значение -1 не превращается в индекс. Подпись необязательна.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | "" |
id | int | -1 |
labelДобавляет разделитель, который занимает индекс, но не является командой активации. id сохраняется напрямую: значение -1 не превращается в индекс. Подпись необязательна.
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
AddShortcut2 перегрузки
public void AddShortcut(Shortcut shortcut, int id, bool global);Короткая перегрузка добавляет команду с allowEcho = false. Для явной политики повтора используйте перегрузку с allowEcho. Текст копируется из ResourceName; global не означает системную горячую клавишу.
| Имя | Тип | По умолчанию |
|---|---|---|
shortcut | Shortcut | — |
id | int | — |
global | bool | — |
shortcutНенулевой общий Shortcut с нужными Events; ResourceName копируется в начальный текст пункта.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
public void AddShortcut(Shortcut shortcut, int id = -1, bool global = false, bool allowEcho = false);Добавляет обычную команду с общим ресурсом Shortcut; начальный текст копируется из ResourceName. id = -1 назначает текущий индекс, для маршрутизации задавайте стабильный неотрицательный ID. global относится к обработке сочетания меню, а не к системной регистрации вне приложения. allowEcho разрешает повтор; по умолчанию false. Обрабатывайте действие в IdPressed.
| Имя | Тип | По умолчанию |
|---|---|---|
shortcut | Shortcut | — |
id | int | -1 |
global | bool | false |
allowEcho | bool | false |
shortcutНенулевой общий Shortcut с нужными Events; ResourceName копируется в начальный текст пункта.
idID команды; -1 назначает текущий индекс. Предпочтителен собственный уникальный неотрицательный ID.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
allowEchoРазрешить повторные echo-события; false по умолчанию.
AddSubmenuEntityItemvoid
public void AddSubmenuEntityItem(string label, PopupMenu submenu, int id = -1);Добавляет пункт с объектом PopupMenu. Подменю должно быть без родителя либо уже дочерним этого меню; безродительское будет добавлено в дети. Сохраняйте одну понятную связь владельца и пункта.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | — |
submenu | PopupMenu | — |
id | int | -1 |
labelДобавляет пункт с объектом PopupMenu. Подменю должно быть без родителя либо уже дочерним этого меню; безродительское будет добавлено в дети. Сохраняйте одну понятную связь владельца и пункта.
submenuДобавляет пункт с объектом PopupMenu. Подменю должно быть без родителя либо уже дочерним этого меню; безродительское будет добавлено в дети. Сохраняйте одну понятную связь владельца и пункта.
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
AddSubmenuItemvoid · Устарело
public void AddSubmenuItem(string label, string submenu, int id = -1);Добавляет существующее подменю по относительному пути. В установленном SDK предпочтителен типизированный AddSubmenuEntityItem; не передавайте название произвольного несуществующего меню.
| Имя | Тип | По умолчанию |
|---|---|---|
label | string | — |
submenu | string | — |
id | int | -1 |
labelДобавляет существующее подменю по относительному пути. В установленном SDK предпочтителен типизированный AddSubmenuEntityItem; не передавайте название произвольного несуществующего меню.
submenuДобавляет существующее подменю по относительному пути. В установленном SDK предпочтителен типизированный AddSubmenuEntityItem; не передавайте название произвольного несуществующего меню.
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
Clear2 перегрузки
public void Clear();Удаляет записи и сбрасывает фокус. Без аргумента или с false сохраняет подменю-детей. true отсоединяет и планирует Free только подменю, на которые ссылаются текущие пункты; не освобождает ранее оставленные несвязанные дети.
public void Clear(bool freeSubmenus = false);Удаляет записи и сбрасывает фокус. Без аргумента или с false сохраняет подменю-детей. true отсоединяет и планирует Free только подменю, на которые ссылаются текущие пункты; не освобождает ранее оставленные несвязанные дети.
| Имя | Тип | По умолчанию |
|---|---|---|
freeSubmenus | bool | false |
freeSubmenustrue отсоединяет и планирует освобождение подменю текущих записей; false сохраняет их в дереве.
GetAllowSearchbool
public bool GetAllowSearch();Разрешает переход по начальным буквам исходного текста пунктов, true по умолчанию. Это навигация, не выполнение команды и не поле фильтра. Когда строка поиска меню видна, этот режим буквенной навигации не используется.
boolРазрешает переход по начальным буквам исходного текста пунктов, true по умолчанию. Это навигация, не выполнение команды и не поле фильтра. Когда строка поиска меню видна, этот режим буквенной навигации не используется.
GetFocusedItemint
public int GetFocusedItem();Возвращает текущий индекс подсветки либо -1. Это индекс, не ID команды и не признак успешного выполнения.
intВозвращает текущий индекс подсветки либо -1. Это индекс, не ID команды и не признак успешного выполнения.
GetItemAcceleratorKey
public Key GetItemAccelerator(int index);Возвращает сохранённый Key акселератора, не объект Shortcut.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
KeyKey акселератора или Key.None.
GetItemAutoTranslateModeEntity.AutoTranslateModeEnum
public Entity.AutoTranslateModeEnum GetItemAutoTranslateMode(int index);Возвращает сохранённую политику перевода, Inherit по умолчанию; не наличие перевода для этой строки.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
Entity.AutoTranslateModeEnumВозвращает сохранённую политику перевода, Inherit по умолчанию; не наличие перевода для этой строки.
GetItemCountint
public int GetItemCount();Число записей, включая разделители. Setter требует ≥ 0; рост добавляет пустые записи с ID по индексу, уменьшение отбрасывает хвост. Это не управление временем жизни всех дочерних подменю.
intКоличество записей с разделителями.
GetItemIconTexture2D
public Texture2D GetItemIcon(int index);Возвращает общую Texture2D либо null. Это исходный ресурс, а не уменьшенная копия для меню. Индекс должен быть обычным допустимым.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
Texture2DВозвращает общую Texture2D либо null. Это исходный ресурс, а не уменьшенная копия для меню. Индекс должен быть обычным допустимым.
GetItemIconMaxWidthint
public int GetItemIconMaxWidth(int index);Возвращает сохранённый предел пункта, не фактическую ширину отрисовки и не итоговый предел темы. По умолчанию 0.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
intВозвращает сохранённый предел пункта, не фактическую ширину отрисовки и не итоговый предел темы. По умолчанию 0.
GetItemIconModulateColor
public Color GetItemIconModulate(int index);Возвращает сохранённый множитель RGBA иконки, белый по умолчанию.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
ColorВозвращает сохранённый множитель RGBA иконки, белый по умолчанию.
GetItemIdint
public int GetItemId(int index);Возвращает сохранённый ID существующего индекса. Для отрицательного ID активация может передать индекс вместо него. Проверяйте индекс заранее: ошибочный getter не является поиском команды.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
intСохранённый ID записи.
GetItemIndentint
public int GetItemIndent(int index);Возвращает сохранённый уровень отступа, 0 по умолчанию; не вычисленное смещение.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
intВозвращает сохранённый уровень отступа, 0 по умолчанию; не вычисленное смещение.
GetItemIndexint
public int GetItemIndex(int id);Возвращает первый текущий индекс с данным ID или -1. Дубликаты не запрещены; после перестановки/удаления выполняйте поиск повторно.
| Имя | Тип | По умолчанию |
|---|---|---|
id | int | — |
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
intПервый индекс совпадающего ID или -1.
GetItemLanguagestring
public string GetItemLanguage(int index);Возвращает сохранённый языковой код пункта, пустой по умолчанию. Это не обязательно текущая локаль приложения.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
stringВозвращает сохранённый языковой код пункта, пустой по умолчанию. Это не обязательно текущая локаль приложения.
GetItemMetadataVariant
public Variant GetItemMetadata(int index);Возвращает metadata Variant, Nil без назначения. Проверяйте ожидаемый тип перед преобразованием.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
VariantMetadata Variant либо Nil.
GetItemMultistateint
public int GetItemMultistate(int index);Возвращает сохранённый индекс state, не количество состояний.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
intСохранённый индекс state.
GetItemMultistateMaxint
public int GetItemMultistateMax(int index);Возвращает число состояний; неположительное отключает переход ToggleItemMultistate.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
intЧисло состояний.
GetItemShortcutShortcut
public Shortcut GetItemShortcut(int index);Возвращает общий ресурс Shortcut либо null. Это не копия: изменение его Events влияет на использующие его пункты. Изменение ResourceName само не заменяет текст пункта; задайте SetItemText явно. Индекс должен быть обычным допустимым.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс пункта, не ID. Setter принимает отрицательный индекс с конца; getter требует обычный допустимый.
ShortcutВозвращает общий ресурс Shortcut либо null. Это не копия: изменение его Events влияет на использующие его пункты. Изменение ResourceName само не заменяет текст пункта; задайте SetItemText явно. Индекс должен быть обычным допустимым.
GetItemSubmenustring · Устарело
public string GetItemSubmenu(int index);Возвращает сохранённое имя/путь подменю. В установленном SDK предпочтителен GetItemSubmenuEntity, когда нужен сам объект.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
stringСохранённое имя/путь подменю.
GetItemSubmenuEntityPopupMenu
public PopupMenu GetItemSubmenuEntity(int index);Общий объект подменю либо null. Принадлежность дереву/время жизни не изменяются.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
PopupMenuОбщий PopupMenu либо null.
GetItemTextstring
public string GetItemText(int index);Возвращает исходную строку пункта, не отображённый перевод и не ID команды.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
stringИсходный текст пункта.
GetItemTextDirectionControl.TextDirection
public Control.TextDirection GetItemTextDirection(int index);Возвращает сохранённую политику направления текста, Auto по умолчанию, а не вычисленное направление каждой строки.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
Control.TextDirectionВозвращает сохранённую политику направления текста, Auto по умолчанию, а не вычисленное направление каждой строки.
GetItemTooltipstring
public string GetItemTooltip(int index);Возвращает сохранённую строку подсказки, независимо от того, видна ли она сейчас.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
stringВозвращает сохранённую строку подсказки, независимо от того, видна ли она сейчас.
GetSearchBarFuzzySearchMaxMissesint
public int GetSearchBarFuzzySearchMaxMisses();Допуск пропусков алгоритма нечёткого поиска: целое 0 или больше, по умолчанию 2. Это настройка сопоставления, не лимит результатов и не гарантированное расстояние Левенштейна.
intДопуск пропусков алгоритма нечёткого поиска: целое 0 или больше, по умолчанию 2. Это настройка сопоставления, не лимит результатов и не гарантированное расстояние Левенштейна.
GetSearchBarMinItemCountint
public int GetSearchBarMinItemCount();Минимальное число пунктов без разделителей для показа включённой строки поиска. Допустимо 0 и больше, по умолчанию 0. Не удаляет записи и не меняет ID.
intМинимальное число пунктов без разделителей для показа включённой строки поиска. Допустимо 0 и больше, по умолчанию 0. Не удаляет записи и не меняет ID.
GetShrinkHeightbool
public bool GetShrinkHeight();При подготовке локального popup подгонять высоту к рассчитанному минимуму содержимого, true по умолчанию. false сохраняет запрошенную высоту с учётом ограничений окна. Setter сам не открывает и не перестраивает показанное окно.
boolПри подготовке локального popup подгонять высоту к рассчитанному минимуму содержимого, true по умолчанию. false сохраняет запрошенную высоту с учётом ограничений окна. Setter сам не открывает и не перестраивает показанное окно.
GetShrinkWidthbool
public bool GetShrinkWidth();При подготовке локального popup подгонять ширину к рассчитанному минимуму содержимого, true по умолчанию. false сохраняет запрошенную ширину с учётом ограничений окна. Setter сам не открывает меню.
boolПри подготовке локального popup подгонять ширину к рассчитанному минимуму содержимого, true по умолчанию. false сохраняет запрошенную ширину с учётом ограничений окна. Setter сам не открывает меню.
GetSubmenuPopupDelayfloat
public float GetSubmenuPopupDelay();Задержка открытия подменю при наведении, в секундах; по умолчанию 0,2. Значение ≤ 0 заменяется на 0,01; положительное меньше 0,01 сохраняется. Не означает нулевую задержку и не запускает открытие само по себе.
floatЗадержка открытия подменю при наведении, в секундах; по умолчанию 0,2. Значение ≤ 0 заменяется на 0,01; положительное меньше 0,01 сохраняется. Не означает нулевую задержку и не запускает открытие само по себе.
GetSystemMenuNativeMenu.SystemMenus
public NativeMenu.SystemMenus GetSystemMenu();NativeMenu.SystemMenusGetSystemMenuRootstring
public string GetSystemMenuRoot();stringIsHideOnCheckableItemSelectionbool
public bool IsHideOnCheckableItemSelection();Скрывать при активации check/radio-пункта, true по умолчанию. Сам checked не переключается.
boolФлаг скрытия check/radio-пункта.
IsHideOnItemSelectionbool
public bool IsHideOnItemSelection();Скрывать при активации обычной команды, true по умолчанию. Не включает/не выключает выполнение обработчиков.
boolФлаг скрытия обычной команды.
IsHideOnStateItemSelectionbool
public bool IsHideOnStateItemSelection();Скрывать при активации multistate-пункта, false по умолчанию. Не изменяет state.
boolФлаг скрытия multistate-пункта.
IsItemCheckablebool
public bool IsItemCheckable(int index);true для checkbox или radio-типа. Не означает, что пункт отмечен.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
booltrue для checkbox/radio-типа.
IsItemCheckedbool
public bool IsItemChecked(int index);Хранимый checked-флаг, независимо от наличия checkable-типа.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
boolХранимый checked-флаг.
IsItemDisabledbool
public bool IsItemDisabled(int index);Disabled-флаг пункта, не состояние checkbox.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
boolDisabled-флаг записи.
IsItemIndeterminatebool
public bool IsItemIndeterminate(int index);Хранимый флаг неопределённого состояния.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
boolХранимый indeterminate-флаг.
IsItemRadioCheckablebool
public bool IsItemRadioCheckable(int index);true только для radio-типа. Группа взаимоисключения из этого флага не следует.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
booltrue для radio-типа.
IsItemSeparatorbool
public bool IsItemSeparator(int index);Флаг разделителя, который нельзя использовать как обычную команду активации.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
boolФлаг разделителя.
IsItemShortcutDisabledbool
public bool IsItemShortcutDisabled(int index);Флаг запрета обработки события сочетания, отдельно от Disabled.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
boolФлаг запрета события сочетания.
IsNativeMenubool
public bool IsNativeMenu();Возвращает true, если системное собственное меню поддерживается и в данный момент используется этим PopupMenu.
boolIsPreferNativeMenubool
public bool IsPreferNativeMenu();boolIsSearchBarEnabledbool
public bool IsSearchBarEnabled();Разрешает строку фильтра меню, false по умолчанию. Она показывается при достижении SearchBarMinItemCount; разделители в порог не входят. Пока строка видна, буквенная навигация AllowSearch не используется. Это настройка локального меню, не обещание аналогичного поля в системном меню ОС.
boolРазрешает строку фильтра меню, false по умолчанию. Она показывается при достижении SearchBarMinItemCount; разделители в порог не входят. Пока строка видна, буквенная навигация AllowSearch не используется. Это настройка локального меню, не обещание аналогичного поля в системном меню ОС.
IsSearchBarFuzzySearchEnabledbool
public bool IsSearchBarFuzzySearchEnabled();Разрешает нечёткое сопоставление в строке поиска, true по умолчанию. При false используются точные токены алгоритма, а не обещание побайтового равенства всей строки. Поиск использует исходные подписи пунктов и подменю.
boolРазрешает нечёткое сопоставление в строке поиска, true по умолчанию. При false используются точные токены алгоритма, а не обещание побайтового равенства всей строки. Поиск использует исходные подписи пунктов и подменю.
IsSystemMenubool
public bool IsSystemMenu();Возвращает true, если меню привязано к специальному системному меню.
boolRemoveItemvoid
public void RemoveItem(int index);Удаляет запись и сдвигает последующие индексы, не перенумеровывая ID. Не освобождает автоматически объект подменю; после перестройки заново разрешайте индексы команд.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
ScrollToItemvoid
public void ScrollToItem(int index);Прокручивает локальный список к строке по обычному допустимому индексу. Использует кэш геометрии; вызывайте после формирования раскладки. Не выбирает пункт, не меняет подсветку и не выполняет команду.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
SetAllowSearchvoid
public void SetAllowSearch(bool allow);Разрешает переход по начальным буквам исходного текста пунктов, true по умолчанию. Это навигация, не выполнение команды и не поле фильтра. Когда строка поиска меню видна, этот режим буквенной навигации не используется.
| Имя | Тип | По умолчанию |
|---|---|---|
allow | bool | — |
allowРазрешить буквенную навигацию, когда строка поиска не видна.
SetFocusedItemvoid
public void SetFocusedItem(int index);Задаёт индекс подсвеченного пункта, -1 сбрасывает его. Это не захват фокуса окна и не выполнение команды. Не проверяет Disabled/разделитель; подходящий пункт выбирайте сами. Не испускает IdFocused или IdPressed.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
SetHideOnCheckableItemSelectionvoid
public void SetHideOnCheckableItemSelection(bool enable);Скрывать при активации check/radio-пункта, true по умолчанию. Сам checked не переключается.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableСкрывать при активации check/radio-пункта, true по умолчанию. Сам checked не переключается.
SetHideOnItemSelectionvoid
public void SetHideOnItemSelection(bool enable);Скрывать при активации обычной команды, true по умолчанию. Не включает/не выключает выполнение обработчиков.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableСкрывать при активации обычной команды, true по умолчанию. Не включает/не выключает выполнение обработчиков.
SetHideOnStateItemSelectionvoid
public void SetHideOnStateItemSelection(bool enable);Скрывать при активации multistate-пункта, false по умолчанию. Не изменяет state.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableСкрывать при активации multistate-пункта, false по умолчанию. Не изменяет state.
SetItemAcceleratorvoid
public void SetItemAccelerator(int index, Key accel);Задаёт Key акселератора пункта. Key.None отключает его; не заменяет Shortcut и не выполняет команду. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
accel | Key | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
accelЗадаёт Key акселератора пункта. Key.None отключает его; не заменяет Shortcut и не выполняет команду. Поддерживает отрицательный индекс.
SetItemAsCheckablevoid
public void SetItemAsCheckable(int index, bool enable);true задаёт checkbox-тип, заменяя radio; false убирает checkable-тип. Не нормализует checked других пунктов. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
enable | bool | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
enabletrue задаёт checkbox-тип, заменяя radio; false убирает checkable-тип. Не нормализует checked других пунктов. Поддерживает отрицательный индекс.
SetItemAsRadioCheckablevoid
public void SetItemAsRadioCheckable(int index, bool enable);true задаёт radio-тип; false убирает checkable-тип, не создавая группу. Взаимоисключение реализуйте в модели/обработчике. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
enable | bool | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
enabletrue задаёт radio-тип; false убирает checkable-тип, не создавая группу. Взаимоисключение реализуйте в модели/обработчике. Поддерживает отрицательный индекс.
SetItemAsSeparatorvoid
public void SetItemAsSeparator(int index, bool enable);Меняет тип разделителя без удаления записи или смены ID. Этот setter не испускает MenuChanged в текущей реализации. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
enable | bool | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
enableМеняет тип разделителя без удаления записи или смены ID. Этот setter не испускает MenuChanged в текущей реализации. Поддерживает отрицательный индекс.
SetItemAutoTranslateModevoid
public void SetItemAutoTranslateMode(int index, Entity.AutoTranslateModeEnum mode);Задаёт политику перевода подписи: Inherit следует настройке меню, Always запрашивает перевод, Disabled оставляет исходную строку. Нужны загруженные переводы и подходящая локаль; метод не создаёт перевод сам. GetItemText не меняется. Принимает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
mode | Entity.AutoTranslateModeEnum | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
modeInherit, Always или Disabled; это политика, не словарь перевода.
SetItemCheckedvoid
public void SetItemChecked(int index, bool @checked);Задаёт checked без активации. При фактической смене очищает indeterminate; повторная запись того же checked — no-op и может оставить indeterminate. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
checked | bool | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
checkedЗадаёт checked без активации. При фактической смене очищает indeterminate; повторная запись того же checked — no-op и может оставить indeterminate. Поддерживает отрицательный индекс.
SetItemCountvoid
public void SetItemCount(int count);Число записей, включая разделители. Setter требует ≥ 0; рост добавляет пустые записи с ID по индексу, уменьшение отбрасывает хвост. Это не управление временем жизни всех дочерних подменю.
| Имя | Тип | По умолчанию |
|---|---|---|
count | int | — |
countЧисло записей, включая разделители. Setter требует ≥ 0; рост добавляет пустые записи с ID по индексу, уменьшение отбрасывает хвост. Это не управление временем жизни всех дочерних подменю.
SetItemDisabledvoid
public void SetItemDisabled(int index, bool disabled);Отключает пункт для обычного ввода и ActivateItemByEvent, не удаляя запись. Программные setters состояния остаются доступны. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
disabled | bool | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
disabledОтключает пункт для обычного ввода и ActivateItemByEvent, не удаляя запись. Программные setters состояния остаются доступны. Поддерживает отрицательный индекс.
SetItemIconvoid
public void SetItemIcon(int index, Texture2D icon);Задаёт общую Texture2D иконки; ресурс не копируется. null убирает иконку. Принимает отрицательный индекс с конца. Изменение уведомляет MenuChanged.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
icon | Texture2D | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
iconОбщая Texture2D или null для удаления иконки.
SetItemIconMaxWidthvoid
public void SetItemIconMaxWidth(int index, int width);Задаёт предел ширины иконки в единицах локального интерфейса. Положительные пределы пункта и темы объединяются: используется меньший. Широкая иконка уменьшается с сохранением пропорций; маленькая не увеличивается. Неположительное значение отключает только предел пункта. Принимает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
width | int | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
widthПоложительный предел ширины в локальных единицах интерфейса; ≤ 0 отключает предел пункта, но не темы.
SetItemIconModulatevoid
public void SetItemIconModulate(int index, Color modulate);Задаёт множитель RGBA иконки; белый сохраняет её цвет. Не окрашивает текст и не меняет исходную Texture2D. Принимает отрицательный индекс. Обновляет отрисовку без MenuChanged.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
modulate | Color | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
modulateМножитель RGBA иконки; белый (1,1,1,1) сохраняет цвет.
SetItemIdvoid
public void SetItemId(int index, int id);Меняет ID записи без её перестановки. Уникальность не проверяется; для стабильного IdPressed используйте неотрицательное число. Поддерживает отрицательный индекс записи с конца.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
id | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
SetItemIndentvoid
public void SetItemIndent(int index, int indent);Задаёт уровень отступа: локальное смещение равно indent × константа indent темы. Это не число пикселей и не создание подменю. Обычно используйте неотрицательное число. Принимает отрицательный индекс пункта.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indent | int | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
indentУровень отступа, умножаемый на indent темы; обычно 0 или больше.
SetItemIndeterminatevoid
public void SetItemIndeterminate(int index, bool indeterminate);Меняет флаг неопределённого состояния; при фактической смене сбрасывает checked в false. Повторное значение ничего не меняет. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indeterminate | bool | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
indeterminateМеняет флаг неопределённого состояния; при фактической смене сбрасывает checked в false. Повторное значение ничего не меняет. Поддерживает отрицательный индекс.
SetItemIndexvoid
public void SetItemIndex(int index, int targetIndex);Переносит всю запись с ID/metadata/состоянием на конечную позицию targetIndex. Оба параметра допускают индексы с конца. Для конца списка используйте ItemCount - 1 или -1, не ItemCount.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
targetIndex | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
targetIndexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
SetItemLanguagevoid
public void SetItemLanguage(int index, string language);Задаёт языковую подсказку формирования текста пункта; пустая строка использует текущий язык. Не переводит исходный текст, не меняет GetItemText и не переключает язык приложения. Принимает отрицательный индекс с конца.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
language | string | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
languageЯзыковой код для формирования текста; пустая строка использует текущий язык.
SetItemMetadatavoid
public void SetItemMetadata(int index, Variant metadata);Сохраняет Variant-данные пункта. Они перемещаются с записью; Array/Dictionary могут сохранять общее содержимое. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
metadata | Variant | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
metadataСохраняет Variant-данные пункта. Они перемещаются с записью; Array/Dictionary могут сохранять общее содержимое. Поддерживает отрицательный индекс.
SetItemMultistatevoid
public void SetItemMultistate(int index, int state);Задаёт state без активации. Setter не ограничивает диапазон: проверяйте 0 ≤ state < maxStates сами. Поддерживает отрицательный индекс записи.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
state | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
stateЗадаёт state без активации. Setter не ограничивает диапазон: проверяйте 0 ≤ state < maxStates сами. Поддерживает отрицательный индекс записи.
SetItemMultistateMaxvoid
public void SetItemMultistateMax(int index, int maxStates);Задаёт число состояний, не нормализуя текущий state. Для активного multistate используйте положительное число и отдельно обновите state. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
maxStates | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
maxStatesЗадаёт число состояний, не нормализуя текущий state. Для активного multistate используйте положительное число и отдельно обновите state. Поддерживает отрицательный индекс.
SetItemShortcutvoid
public void SetItemShortcut(int index, Shortcut shortcut, bool global = false);Заменяет общий Shortcut и флаг global у существующего пункта; null снимает Shortcut. Не меняет текст, иконку, checked или отдельный акселератор. Не задаёт allowEcho: сохраняется политика, установленная при добавлении пункта. Принимает отрицательный индекс с конца. Изменённый Events общего Shortcut используется при следующих совпадениях.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
shortcut | Shortcut | — |
global | bool | false |
indexТекущий индекс пункта, не ID. Setter принимает отрицательный индекс с конца; getter требует обычный допустимый.
shortcutОбщий Shortcut либо null для снятия. Events задаёт варианты ввода, ResourceName не заменяет текущий текст.
globalУчитывать Shortcut при запросе только глобальных сочетаний меню. Не системная регистрация вне приложения.
SetItemShortcutDisabledvoid
public void SetItemShortcutDisabled(int index, bool disabled);Запрещает обработку события сочетания у пункта; этот флаг также исключает акселератор в ActivateItemByEvent. Не делает весь пункт disabled для обычного клика. Поддерживает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
disabled | bool | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
disabledЗапрещает обработку события сочетания у пункта; этот флаг также исключает акселератор в ActivateItemByEvent. Не делает весь пункт disabled для обычного клика. Поддерживает отрицательный индекс.
SetItemSubmenuvoid · Устарело
public void SetItemSubmenu(int index, string submenu);Устаревший setter установленного SDK: ищет существующий PopupMenu по относительному пути. Предпочитайте SetItemSubmenuEntity. Пустая строка не является надёжным способом снять подменю; типизированный setter также не принимает null.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
submenu | string | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
submenuОтносительный путь к существующему PopupMenu.
SetItemSubmenuEntityvoid
public void SetItemSubmenuEntity(int index, PopupMenu submenu);Назначает ненулевой PopupMenu существующему пункту. Подменю без родителя становится дочерним этого меню; объект с другим родителем не принимается. Замена не освобождает и не отсоединяет прежнее подменю. Не передавайте null для сброса: удалите/пересоздайте пункт, затем отдельно очистите больше не используемый дочерний объект. Принимает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
submenu | PopupMenu | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
submenuНенулевой PopupMenu без родителя либо уже дочерний этого меню.
SetItemTextvoid
public void SetItemText(int index, string text);Меняет исходный текст и обновляет перевод/shaping, не ID. Поддерживает отрицательный индекс с конца; не активирует команду.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
text | string | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
textМеняет исходный текст и обновляет перевод/shaping, не ID. Поддерживает отрицательный индекс с конца; не активирует команду.
SetItemTextDirectionvoid
public void SetItemTextDirection(int index, Control.TextDirection direction);Задаёт базовое направление формирования текста пункта. Auto определяет его по тексту; это не перевод и не разворот всей раскладки окна. GetItemText остаётся исходным. Принимает отрицательный индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
direction | Control.TextDirection | — |
indexИндекс существующего пункта, не ID. Рассмотренные SetItem* принимают отрицательный индекс с конца; getters и ScrollToItem требуют обычный допустимый.
directionБазовая политика Control.TextDirection, Auto по умолчанию.
SetItemTooltipvoid
public void SetItemTooltip(int index, string tooltip);Сохраняет текст подсказки, пустая строка убирает текст. Не открывает подсказку немедленно и не меняет название команды. Принимает отрицательный индекс; повтор того же значения ничего не делает.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
tooltip | string | — |
indexОбычный допустимый индекс пункта. SetItem* также принимает отрицательный индекс с конца; SetFocusedItem использует -1 только для сброса.
tooltipТекст подсказки; пустая строка убирает текст.
SetPreferNativeMenuvoid
public void SetPreferNativeMenu(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetSearchBarEnabledvoid
public void SetSearchBarEnabled(bool enabled);Разрешает строку фильтра меню, false по умолчанию. Она показывается при достижении SearchBarMinItemCount; разделители в порог не входят. Пока строка видна, буквенная навигация AllowSearch не используется. Это настройка локального меню, не обещание аналогичного поля в системном меню ОС.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledВключить указанную возможность локального меню.
SetSearchBarFuzzySearchEnabledvoid
public void SetSearchBarFuzzySearchEnabled(bool enabled);Разрешает нечёткое сопоставление в строке поиска, true по умолчанию. При false используются точные токены алгоритма, а не обещание побайтового равенства всей строки. Поиск использует исходные подписи пунктов и подменю.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledВключить указанную возможность локального меню.
SetSearchBarFuzzySearchMaxMissesvoid
public void SetSearchBarFuzzySearchMaxMisses(int maxMisses);Допуск пропусков алгоритма нечёткого поиска: целое 0 или больше, по умолчанию 2. Это настройка сопоставления, не лимит результатов и не гарантированное расстояние Левенштейна.
| Имя | Тип | По умолчанию |
|---|---|---|
maxMisses | int | — |
maxMissesДопуск алгоритма поиска, целое 0 или больше.
SetSearchBarMinItemCountvoid
public void SetSearchBarMinItemCount(int count);Минимальное число пунктов без разделителей для показа включённой строки поиска. Допустимо 0 и больше, по умолчанию 0. Не удаляет записи и не меняет ID.
| Имя | Тип | По умолчанию |
|---|---|---|
count | int | — |
countПорог числа пунктов без разделителей, 0 или больше.
SetShrinkHeightvoid
public void SetShrinkHeight(bool shrink);При подготовке локального popup подгонять высоту к рассчитанному минимуму содержимого, true по умолчанию. false сохраняет запрошенную высоту с учётом ограничений окна. Setter сам не открывает и не перестраивает показанное окно.
| Имя | Тип | По умолчанию |
|---|---|---|
shrink | bool | — |
shrinkПодгонять размер по этой оси при подготовке popup.
SetShrinkWidthvoid
public void SetShrinkWidth(bool shrink);При подготовке локального popup подгонять ширину к рассчитанному минимуму содержимого, true по умолчанию. false сохраняет запрошенную ширину с учётом ограничений окна. Setter сам не открывает меню.
| Имя | Тип | По умолчанию |
|---|---|---|
shrink | bool | — |
shrinkПодгонять размер по этой оси при подготовке popup.
SetSubmenuPopupDelayvoid
public void SetSubmenuPopupDelay(float seconds);Задержка открытия подменю при наведении, в секундах; по умолчанию 0,2. Значение ≤ 0 заменяется на 0,01; положительное меньше 0,01 сохраняется. Не означает нулевую задержку и не запускает открытие само по себе.
| Имя | Тип | По умолчанию |
|---|---|---|
seconds | float | — |
secondsЗадержка в секундах; ≤ 0 заменяется на 0,01.
SetSystemMenuvoid
public void SetSystemMenu(NativeMenu.SystemMenus systemMenuId);| Имя | Тип | По умолчанию |
|---|---|---|
systemMenuId | NativeMenu.SystemMenus | — |
SetSystemMenuRootvoid
public void SetSystemMenuRoot(string special);| Имя | Тип | По умолчанию |
|---|---|---|
special | string | — |
ToggleItemCheckedvoid
public void ToggleItemChecked(int index);Инвертирует checked без активации. Не очищает indeterminate и не снимает checked соседних radio-пунктов. Требует обычный допустимый индекс.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
ToggleItemMultistatevoid
public void ToggleItemMultistate(int index);Увеличивает state и возвращает 0 при достижении maxStates. При maxStates ≤ 0 ничего не делает. Не активирует команду; индекс должен быть обычным допустимым.
| Имя | Тип | По умолчанию |
|---|---|---|
index | int | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
Сигналы и события4
IdFocusedСобытие
public event PopupMenu.IdFocusedEventHandler IdFocused;Уведомляет об изменении подсветки при навигации меню. Передаёт сохранённый ID, включая отрицательный; правило замены отрицательного ID индексом из IdPressed здесь не применяется. Прямой SetFocusedItem сигнал не испускает. Не выполняйте команду только из-за наведения/навигации.
| Имя | Тип | По умолчанию |
|---|---|---|
id | long | — |
idСохранённый ID подсвеченного пункта, включая отрицательное значение. Это не индекс.
IdPressedСобытие
public event PopupMenu.IdPressedEventHandler IdPressed;Активация команды: ID, либо индекс при отрицательном сохранённом ID. Приходит перед IndexPressed. Для стабильной маршрутизации задавайте уникальные неотрицательные ID.
| Имя | Тип | По умолчанию |
|---|---|---|
id | long | — |
idID команды, отдельно от индекса; используйте уникальное неотрицательное число. Значение -1 при обычном добавлении назначает текущий индекс, но не у AddSeparator.
IndexPressedСобытие
public event PopupMenu.IndexPressedEventHandler IndexPressed;Активация по индексу на момент запуска, после IdPressed. Если первый обработчик изменил список, индекс может уже относиться к другой записи. Не выполняйте одно действие в обоих сигналах.
| Имя | Тип | По умолчанию |
|---|---|---|
index | long | — |
indexТекущий индекс 0…ItemCount-1; рассмотренные SetItem* принимают отрицательные индексы с конца. Это не ID.
MenuChangedСобытие
public event Action MenuChanged;Уведомление многих операций изменения меню, не активации. Не каждый setter его испускает: например, SetItemAsSeparator не испускает. Не используйте как единственное наблюдение всех записей.
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
font_accelerator_colorColor | Текст Color(0.7, 0.7, 0.7, 0.8) |
font_colorColor | Текст по умолчанию Color(0.875, 0.875, 0.875, 1) |
font_disabled_colorColor |
Color(0.4, 0.4, 0.4, 0.8) |
font_hover_colorColor |
Color(0.875, 0.875, 0.875, 1) |
font_outline_colorColor | Оттенок контура текста пункта меню. По умолчанию:Color(0, 0, 0, 1) |
font_separator_colorColor |
Color(0.875, 0.875, 0.875, 1) |
font_separator_outline_colorColor | Оттенок контура текста маркированного разделителя. По умолчанию:Color(0, 0, 0, 1) |
gutter_compactint | Если значение не равно 1 |
h_separationint | Горизонтальное пространство между элементами. По умолчанию:4 |
icon_max_widthint | Максимально допустимая ширина значка элемента. Это ограничение применяется поверх размера значка по умолчанию, но до значения, установленного с помощью 0 |
indentint | Ширина одного уровня отступа. По умолчанию:10 |
item_end_paddingint | Горизонтальный отступ справа от элементов (или слева в макете с написанием справа налево). По умолчанию:2 |
item_start_paddingint | Горизонтальный отступ слева от элементов (или справа в макете с написанием справа налево). По умолчанию:2 |
outline_sizeint | Размер контура текста элемента.
Примечание: При использовании шрифта с включенным 0 |
search_bar_separationint | Вертикальное расстояние между строкой поиска и пунктами меню. По умолчанию:4 |
separator_outline_sizeint | Размер контура текста маркированного разделителя. По умолчанию:0 |
v_separationint | Вертикальное расстояние между каждым пунктом меню. По умолчанию:4 |
fontFont |
|
font_separatorFont |
|
font_separator_sizeint | Font размер отсекаемого отсека с маркировкой. |
font_sizeint | Font размер меню. |
checkedTexture2D | Значок |
checked_disabledTexture2D | Значок |
indeterminateTexture2D |
|
indeterminate_disabledTexture2D |
|
radio_checkedTexture2D | Значок |
radio_checked_disabledTexture2D | Значок |
radio_uncheckedTexture2D | Значок |
radio_unchecked_disabledTexture2D | Значок |
searchTexture2D |
|
submenuTexture2D | Значок |
submenu_mirroredTexture2D | Значок |
uncheckedTexture2D | Значок |
unchecked_disabledTexture2D | Значок |
item_activated_disabled_soundAudioStream | Играет при активации инвалида. |
item_activated_soundAudioStream | Играет при активации предмета. |
item_hovered_soundAudioStream | Недееспособные предметы не играют в зависающие звуки. |
hoverStyleBox |
|
labeled_separator_leftStyleBox |
|
labeled_separator_rightStyleBox |
|
panelStyleBox |
|
separatorStyleBox |
|