BaseButton
Активация кнопок, переключение состояния и сигналы ввода.
BaseButton задаёт поведение кнопки; для готового оформления используйте Button, CheckBox или CheckButton. По умолчанию ToggleMode = false, Disabled = false, ActionMode = Release, ButtonMask = Left; фокус разрешён. ActionMode выбирает момент активации при вводе, а не задержку программного Press.
Разделяйте действие и состояние. Press активирует кнопку немедленно: в обычном режиме вызывает _Pressed и Pressed; в ToggleMode также переключает состояние, согласует группу и вызывает _Toggled/Toggled. Press учитывает Disabled, но не создаёт пару ButtonDown/ButtonUp и не имитирует удержание мыши. Подписывайте одну и ту же прикладную операцию либо на callback подкласса, либо на сигнал, если не нужны два вызова.
ButtonPressed/SetPressed работают только при ToggleMode = true. При изменении состояния вызывается Toggled, но не Pressed. Повторное присваивание того же значения ничего не уведомляет. SetPressedNoSignal меняет только локальное состояние и перерисовку: не вызывает Toggled/_Toggled и не отключает другие кнопки группы. После загрузки настройки таким способом обновите зависящий интерфейс явно.
Disabled запрещает активацию Press, но не обязательно программное изменение состояния. У выключенного toggle-элемента SetPressed может изменить состояние без собственного Toggled; ButtonGroup при выборе всё ещё может получить Pressed. Не используйте отключённый элемент как единственный источник синхронизации модели.
ButtonGroup предназначена для toggle-кнопок. Назначение ресурса само не выбирает элемент и не исправляет несколько уже включённых кнопок. Обычный переход SetPressed(true) выключает остальных, а SetPressedNoSignal(true) — нет. Повторный SetPressed(true) уже включённого элемента не восстанавливает взаимоисключение. Для начальной настройки выключите все элементы через SetPressedNoSignal(false), затем включите выбранный через SetPressed(true); при необходимости обновите прикладную модель отдельно.
KeepPressedOutside сохраняет вид нажатия за границей, но не разрешает активацию отпусканием снаружи. ShortcutFeedback и ShortcutInTooltip управляют отображением обратной связи и подсказки, не включением сочетания. Shortcut срабатывает через Press при подходящем событии без автоповтора и видимой кнопке; учитывайте маршрутизацию и обработку событий другими элементами.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
BaseButtonКонструктор
public BaseButton();Создаёт базовую кнопку: ToggleMode = false, Disabled = false, ActionMode = Release, ButtonMask = Left, FocusMode = All. Для стандартного оформления используйте производный Button.
Свойства10
ActionModeСвойство
public BaseButton.ActionModeEnum ActionMode { get; set; }Момент активации пользовательским нажатием: Press при нажатии, Release при отпускании, Release по умолчанию. Программный Press и сочетание Shortcut активируют немедленно.
ButtonGroupСвойство
public ButtonGroup ButtonGroup { get; set; }Общий ресурс группы toggle-кнопок либо null. Назначение регистрирует членство, но не выбирает кнопку и не исправляет конфликт старых состояний. Не используйте с ToggleMode = false.
ButtonMaskСвойство
public MouseButtonMask ButtonMask { get; set; }Битовая маска принимаемых кнопок мыши, Left по умолчанию. Можно объединять MouseButtonMask.Left | MouseButtonMask.Right. Не отключает ui_accept или Shortcut.
ButtonPressedСвойство
public bool ButtonPressed { get; set; }Состояние toggle-кнопки. Setter работает только при ToggleMode и вызывает Toggled при обычном изменении, но не Pressed. Для обычной кнопки IsPressed отражает попытку удержания, а не сохранённую настройку.
DisabledСвойство
public bool Disabled { get; set; }Запрещает активацию Press, false по умолчанию. Не запрещает программный SetPressed; собственные Toggled/callback при этом подавляются. Уже включённый toggle не обязательно выключается.
KeepPressedOutsideСвойство
public bool KeepPressedOutside { get; set; }Сохраняет вид нажатия при выходе указателя за границу во время удержания, false по умолчанию. Не разрешает активацию отпусканием за пределами.
ShortcutСвойство
public Shortcut Shortcut { get; set; }Общий ресурс Shortcut либо null. Назначение включает обработку сочетания; matching-событие активирует Press при видимой кнопке и без автоповтора. Disabled блокирует действие.
ShortcutFeedbackСвойство
public bool ShortcutFeedback { get; set; }Показывать краткую визуальную обратную связь при Shortcut, true по умолчанию. false не отключает само сочетание.
ShortcutInTooltipСвойство
public bool ShortcutInTooltip { get; set; }Добавлять сведения о Shortcut в стандартную подсказку, true по умолчанию. Не включает и не отключает обработку сочетания; пользовательская подсказка может задаваться отдельно.
ToggleModeСвойство
public bool ToggleMode { get; set; }Сохранять состояние включено/выключено, false по умолчанию. CheckBox/CheckButton включают этот режим в конструкторе. Выключение режима сначала снимает toggle-состояние обычным setter и может вызвать Toggled.
Методы26
GetActionModeBaseButton.ActionModeEnum
public BaseButton.ActionModeEnum GetActionMode();Момент активации пользовательским нажатием: Press при нажатии, Release при отпускании, Release по умолчанию. Программный Press и сочетание Shortcut активируют немедленно.
BaseButton.ActionModeEnumСохранённый режим момента активации вводом.
GetButtonGroupButtonGroup
public ButtonGroup GetButtonGroup();Общий ресурс группы toggle-кнопок либо null. Назначение регистрирует членство, но не выбирает кнопку и не исправляет конфликт старых состояний. Не используйте с ToggleMode = false.
ButtonGroupОбщий ButtonGroup либо null.
GetButtonMaskMouseButtonMask
public MouseButtonMask GetButtonMask();Битовая маска принимаемых кнопок мыши, Left по умолчанию. Можно объединять MouseButtonMask.Left | MouseButtonMask.Right. Не отключает ui_accept или Shortcut.
MouseButtonMaskБитовая маска MouseButtonMask.
GetDrawModeBaseButton.DrawMode
public BaseButton.DrawMode GetDrawMode();Возвращает логический режим оформления Normal/Pressed/Hover/Disabled/HoverPressed, учитывая взаимодействие и shortcut feedback. Это не setter темы и не сохранённый ButtonPressed.
BaseButton.DrawModeТекущий логический BaseButton.DrawMode.
GetShortcutShortcut
public Shortcut GetShortcut();Общий ресурс Shortcut либо null. Назначение включает обработку сочетания; matching-событие активирует Press при видимой кнопке и без автоповтора. Disabled блокирует действие.
ShortcutОбщий Shortcut либо null.
IsDisabledbool
public bool IsDisabled();Запрещает активацию Press, false по умолчанию. Не запрещает программный SetPressed; собственные Toggled/callback при этом подавляются. Уже включённый toggle не обязательно выключается.
booltrue, если активация запрещена.
IsHoveredbool
public bool IsHovered();Возвращает состояние наведения, отслеживаемое событиями интерфейса. Это не проверка произвольной глобальной координаты и не состояние фокуса.
booltrue при отслеживаемом наведении указателя.
IsKeepPressedOutsidebool
public bool IsKeepPressedOutside();Сохраняет вид нажатия при выходе указателя за границу во время удержания, false по умолчанию. Не разрешает активацию отпусканием за пределами.
booltrue, если вид нажатия сохраняется снаружи во время удержания.
IsPressedbool
public bool IsPressed();Состояние toggle-кнопки. Setter работает только при ToggleMode и вызывает Toggled при обычном изменении, но не Pressed. Для обычной кнопки IsPressed отражает попытку удержания, а не сохранённую настройку.
boolToggle-состояние либо текущая попытка удержания обычной кнопки.
IsShortcutFeedbackbool
public bool IsShortcutFeedback();Показывать краткую визуальную обратную связь при Shortcut, true по умолчанию. false не отключает само сочетание.
booltrue, если включена визуальная обратная связь сочетания.
IsShortcutInTooltipEnabledbool
public bool IsShortcutInTooltipEnabled();Добавлять сведения о Shortcut в стандартную подсказку, true по умолчанию. Не включает и не отключает обработку сочетания; пользовательская подсказка может задаваться отдельно.
booltrue, если сведения о сочетании разрешены в подсказке.
IsToggleModebool
public bool IsToggleMode();Сохранять состояние включено/выключено, false по умолчанию. CheckBox/CheckButton включают этот режим в конструкторе. Выключение режима сначала снимает toggle-состояние обычным setter и может вызвать Toggled.
booltrue для сохраняемого состояния переключателя.
Pressvoid
public void Press();Немедленно активирует, учитывая Disabled. В toggle-режиме переключает состояние и согласует группу; затем вызывает Toggled и Pressed. Не создаёт ButtonDown/ButtonUp и не требует физического ввода. Повторная активация обязательной группы может оставить true, но снова уведомить.
SetActionModevoid
public void SetActionMode(BaseButton.ActionModeEnum mode);Момент активации пользовательским нажатием: Press при нажатии, Release при отпускании, Release по умолчанию. Программный Press и сочетание Shortcut активируют немедленно.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | BaseButton.ActionModeEnum | — |
modeМомент активации пользовательским нажатием: Press при нажатии, Release при отпускании, Release по умолчанию. Программный Press и сочетание Shortcut активируют немедленно.
SetButtonGroupvoid
public void SetButtonGroup(ButtonGroup buttonGroup);Общий ресурс группы toggle-кнопок либо null. Назначение регистрирует членство, но не выбирает кнопку и не исправляет конфликт старых состояний. Не используйте с ToggleMode = false.
| Имя | Тип | По умолчанию |
|---|---|---|
buttonGroup | ButtonGroup | — |
buttonGroupОбщий ресурс группы toggle-кнопок либо null. Назначение регистрирует членство, но не выбирает кнопку и не исправляет конфликт старых состояний. Не используйте с ToggleMode = false.
SetButtonMaskvoid
public void SetButtonMask(MouseButtonMask mask);Битовая маска принимаемых кнопок мыши, Left по умолчанию. Можно объединять MouseButtonMask.Left | MouseButtonMask.Right. Не отключает ui_accept или Shortcut.
| Имя | Тип | По умолчанию |
|---|---|---|
mask | MouseButtonMask | — |
maskБитовая маска принимаемых кнопок мыши, Left по умолчанию. Можно объединять MouseButtonMask.Left | MouseButtonMask.Right. Не отключает ui_accept или Shortcut.
SetDisabledvoid
public void SetDisabled(bool disabled);Запрещает активацию Press, false по умолчанию. Не запрещает программный SetPressed; собственные Toggled/callback при этом подавляются. Уже включённый toggle не обязательно выключается.
| Имя | Тип | По умолчанию |
|---|---|---|
disabled | bool | — |
disabledЗапрещает активацию Press, false по умолчанию. Не запрещает программный SetPressed; собственные Toggled/callback при этом подавляются. Уже включённый toggle не обязательно выключается.
SetKeepPressedOutsidevoid
public void SetKeepPressedOutside(bool enabled);Сохраняет вид нажатия при выходе указателя за границу во время удержания, false по умолчанию. Не разрешает активацию отпусканием за пределами.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledСохраняет вид нажатия при выходе указателя за границу во время удержания, false по умолчанию. Не разрешает активацию отпусканием за пределами.
SetPressedvoid
public void SetPressed(bool pressed);Состояние toggle-кнопки. Setter работает только при ToggleMode и вызывает Toggled при обычном изменении, но не Pressed. Для обычной кнопки IsPressed отражает попытку удержания, а не сохранённую настройку.
| Имя | Тип | По умолчанию |
|---|---|---|
pressed | bool | — |
pressedЖелаемое toggle-состояние; без ToggleMode запись игнорируется.
SetPressedNoSignalvoid
public void SetPressedNoSignal(bool pressed);Меняет состояние только при ToggleMode, без Toggled/_Toggled, Pressed и сигналов группы. Не отключает другие элементы ButtonGroup, поэтому может создать несколько выбранных. Зависимую модель обновляйте явно.
| Имя | Тип | По умолчанию |
|---|---|---|
pressed | bool | — |
pressedЖелаемое toggle-состояние; без ToggleMode запись игнорируется.
SetShortcutvoid
public void SetShortcut(Shortcut shortcut);Общий ресурс Shortcut либо null. Назначение включает обработку сочетания; matching-событие активирует Press при видимой кнопке и без автоповтора. Disabled блокирует действие.
| Имя | Тип | По умолчанию |
|---|---|---|
shortcut | Shortcut | — |
shortcutОбщий ресурс Shortcut либо null. Назначение включает обработку сочетания; matching-событие активирует Press при видимой кнопке и без автоповтора. Disabled блокирует действие.
SetShortcutFeedbackvoid
public void SetShortcutFeedback(bool enabled);Показывать краткую визуальную обратную связь при Shortcut, true по умолчанию. false не отключает само сочетание.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledПоказывать краткую визуальную обратную связь при Shortcut, true по умолчанию. false не отключает само сочетание.
SetShortcutInTooltipvoid
public void SetShortcutInTooltip(bool enabled);Добавлять сведения о Shortcut в стандартную подсказку, true по умолчанию. Не включает и не отключает обработку сочетания; пользовательская подсказка может задаваться отдельно.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledДобавлять сведения о Shortcut в стандартную подсказку, true по умолчанию. Не включает и не отключает обработку сочетания; пользовательская подсказка может задаваться отдельно.
SetToggleModevoid
public void SetToggleMode(bool enabled);Сохранять состояние включено/выключено, false по умолчанию. CheckBox/CheckButton включают этот режим в конструкторе. Выключение режима сначала снимает toggle-состояние обычным setter и может вызвать Toggled.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledСохранять состояние включено/выключено, false по умолчанию. CheckBox/CheckButton включают этот режим в конструкторе. Выключение режима сначала снимает toggle-состояние обычным setter и может вызвать Toggled.
_Pressedvoid
public virtual void _Pressed();Виртуальный callback подкласса при активации перед сигналом Pressed. Не вызывается обычной записью toggle-состояния. Не вызывайте его вместо Press для имитации действия.
_Toggledvoid
public virtual void _Toggled(bool toggledOn);Виртуальный callback перед Toggled при уведомлении toggle-состояния. SetPressedNoSignal и Disabled подавляют его; аргумент не гарантирует, что число уведомлений равно числу переходов состояния.
| Имя | Тип | По умолчанию |
|---|---|---|
toggledOn | bool | — |
toggledOnУведомляемое toggle-состояние; true может повториться без перехода в обязательной группе.
Сигналы и события4
ButtonDownСобытие
public event Action ButtonDown;Начало принятого удержания через ввод. Это не окончательная активация и не программный Press. Момент Pressed отдельно зависит от ActionMode.
ButtonUpСобытие
public event Action ButtonUp;Завершение принятого удержания через ввод; отключение активной кнопки также может завершить его. Не гарантирует активацию и не создаётся программным Press.
PressedСобытие
public event Action Pressed;Кнопка активирована через пользовательский ввод или Press. Обычные SetPressed/SetPressedNoSignal не испускают этот сигнал. Для состояния переключателя используйте Toggled и ButtonPressed.
ToggledСобытие
public event BaseButton.ToggledEventHandler Toggled;Уведомление toggle-состояния. Обычный изменяющий SetPressed вызывает его; SetPressedNoSignal и Disabled подавляют. Press выбранной кнопки обязательной группы может снова передать true без изменения состояния.
| Имя | Тип | По умолчанию |
|---|---|---|
toggledOn | bool | — |
toggledOnУведомляемое toggle-состояние; true может повториться без перехода в обязательной группе.
BaseButton.ActionModeEnum
| Значение | Описание |
|---|---|
Press = 0 | Для того, чтобы кнопка считалась нажатой, достаточно одного нажатия. |
Release = 1 | Требуйте нажатия и последующего отпускания кнопки, прежде чем считать нажатие на нее выполненным. |
BaseButton.DrawMode
| Значение | Описание |
|---|---|
Disabled = 3 | Состояние кнопок — отключено. |
Hover = 2 | Состояние кнопок наведено. |
HoverPressed = 4 | Состояние кнопок — наведенное и нажатое. |
Normal = 0 | Нормальное состояние кнопок (т. е. не нажато, не наведено, не переключено и не включено). |
Pressed = 1 | Состояние кнопок нажато. |
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
click_marginint | Определяет расстояние вокруг области кнопки, которое все еще считается правильным щелчком. Это полезно для облегчения нажатия на маленькие кнопки. Сосредоточься. По умолчанию:0 |
focus_soundAudioStream | Играл, когда это |
hover_soundAudioStream | Играет, когда кнопка зависает с мышкой. |
pressed_disabled_soundAudioStream | Проигрывается при нажатии кнопки любым методом ввода, но имеет |
pressed_soundAudioStream | Проигрывается при нажатии кнопки с помощью любого метода ввода. |