Button
Кнопка с текстом, иконкой и оформлением из темы.
Button добавляет оформление к поведению BaseButton. Для действия используйте Pressed; для переключаемой настройки включите ToggleMode и используйте Toggled. Text и Icon задают содержимое, theme-ресурсы — стили состояний, шрифт, цвета и интервалы. По умолчанию текст центрирован, иконка слева и по центру вертикали; MouseFilter = Stop.
Почему длинная кнопка не сжимается: без ClipText, сокращения или переноса ширина текста входит в её минимум. Для однострочной кнопки с многоточием задайте TextOverrunBehavior = TextServer.OverrunBehavior.TrimEllipsisForce и ограничьте доступную ширину родительской раскладкой. ClipText просто разрешает обрезание и сам не добавляет многоточие. CustomMinimumSize, иконка и поля StyleBox продолжают ограничивать размер.
AutowrapMode разрешает перенос; используйте WordSmart для переноса по словам с разбиением слишком длинных фрагментов. Нужна заданная доступная ширина, иначе тексту незачем переноситься. Перенос меняет требуемую высоту; не задавайте жёсткую высоту для переводов с разной длиной. AutowrapTrimFlags управляет только пробелами у краёв строк: посторонние LineBreakFlag отбрасываются.
При ExpandIcon = false исходная иконка участвует в минимальном размере; theme-константа icon_max_width ограничивает её с сохранением пропорций. ExpandIcon = true подгоняет иконку в доступную область и убирает её исходный размер из минимума, но не создаёт свободное место автоматически. IconAlignment и VerticalIconAlignment настраиваются отдельно от Alignment текста; верхняя/нижняя иконка может увеличить необходимую высоту.
Icon = null может использовать theme-иконку icon. Поэтому GetButtonIcon возвращает только явно назначенную текстуру, а не обязательно фактически нарисованную. Ресурс иконки общий, его изменения отслеживаются. Flat убирает фоновые StyleBox, сохраняя отдельное оформление фокуса, размеры и обработку ввода. Для стабильного размера используйте согласованные поля стилей разных состояний.
GetText возвращает исходную строку, не готовый перевод и не сокращённую надпись. Language задаёт язык шейпинга текста, а не переключает язык приложения. TextDirection задаёт направление текста; зеркальность горизонтального выравнивания иконки/текста зависит от LayoutDirection самого Control.
Для сочетания назначьте общий ресурс Shortcut. MatchesEvent может совпасть и с отпусканием: проверка совпадения сама не равна активации кнопки. BaseButton дополнительно учитывает нажатие, автоповтор, видимость и Disabled.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
ButtonКонструктор
public Button();Создаёт кнопку с пустым Text, без явной Icon, с Alignment = Center, IconAlignment = Left и VerticalIconAlignment = Center. Flat/ClipText/ExpandIcon выключены, MouseFilter = Stop.
Свойства13
AlignmentСвойство
public HorizontalAlignment Alignment { get; set; }Горизонтальное выравнивание текста, Center по умолчанию. Left/Right зеркальны при RTL LayoutDirection Control. Не задаёт положение самой кнопки в контейнере и не заменяет IconAlignment.
AutowrapModeСвойство
public TextServer.AutowrapMode AutowrapMode { get; set; }Режим переноса, Off по умолчанию. Word/WordSmart учитывают границы слов, Arbitrary — границы графем. Нужна ограниченная доступная ширина. Перенос освобождает естественную ширину текста в минимуме, но может увеличить высоту.
AutowrapTrimFlagsСвойство
public TextServer.LineBreakFlag AutowrapTrimFlags { get; set; }Биты удаления пробелов у начала/конца строки; по умолчанию TrimEndEdgeSpaces. Сохраняются только TrimStartEdgeSpaces/TrimEndEdgeSpaces, остальные LineBreakFlag отбрасываются. Сам режим переноса задаётся AutowrapMode.
ClipTextСвойство
public bool ClipText { get; set; }Разрешает обрезание текста и убирает его естественную ширину из минимума, false по умолчанию. Не добавляет многоточие и не отменяет поля стиля, иконку или CustomMinimumSize.
ExpandIconСвойство
public bool ExpandIcon { get; set; }Подгонять иконку под доступную область с сохранением пропорций, false по умолчанию. true убирает исходный размер иконки из минимума. Ограничение theme icon_max_width продолжает действовать; доступное место задаёт раскладка.
FlatСвойство
public bool Flat { get; set; }Не рисовать фоновые StyleBox, false по умолчанию. Отдельный стиль фокуса продолжает рисоваться; минимум, поля стилей, кликабельность и Disabled работают по прежним правилам.
IconСвойство
public Texture2D Icon { get; set; }Явно назначенная общая Texture2D либо null. При null отображение может использовать theme-иконку icon. Ресурс не копируется; изменения отслеживаются. Его вклад в минимум зависит от ExpandIcon и icon_max_width.
IconAlignmentСвойство
public HorizontalAlignment IconAlignment { get; set; }Горизонтальное положение иконки, Left по умолчанию. Left/Right зеркальны в RTL. Center меняет совместный расчёт места и не является командой добавить отступ между иконкой и текстом.
LanguageСвойство
public string Language { get; set; }Язык шейпинга; пустая строка использует локаль Control. Это подсказка обработке текста, не переключатель языка приложения и не готовый перевод Text.
TextСвойство
public string Text { get; set; }Исходная строка надписи, пустая по умолчанию. Отображение может переводиться, переноситься и сокращаться; getter возвращает исходник. Изменение обновляет шейпинг и минимум. Это обычный текст, не BBCode-разметка.
TextDirectionСвойство
public Control.TextDirection TextDirection { get; set; }Направление обработки текста, Auto по умолчанию. Inherited берёт направление раскладки Control. Не заменяет LayoutDirection для зеркальности расположения иконки и горизонтального выравнивания.
TextOverrunBehaviorСвойство
public TextServer.OverrunBehavior TextOverrunBehavior { get; set; }Сокращение при недостатке ширины, NoTrimming по умолчанию. TrimChar/TrimWord обрезают; варианты Ellipsis добавляют многоточие при выполнении условий, Force разрешает его для коротких надписей. Не меняет исходный Text и требует ограниченной области.
VerticalIconAlignmentСвойство
public VerticalAlignment VerticalIconAlignment { get; set; }Вертикальное положение иконки, Center по умолчанию. Top/Bottom могут складывать высоту текста и иконки, увеличивая минимум. Не изменяет выравнивание Control в родительской раскладке.
Методы26
GetAutowrapModeTextServer.AutowrapMode
public TextServer.AutowrapMode GetAutowrapMode();Режим переноса, Off по умолчанию. Word/WordSmart учитывают границы слов, Arbitrary — границы графем. Нужна ограниченная доступная ширина. Перенос освобождает естественную ширину текста в минимуме, но может увеличить высоту.
TextServer.AutowrapModeВыбранный режим переноса TextServer.AutowrapMode.
GetAutowrapTrimFlagsTextServer.LineBreakFlag
public TextServer.LineBreakFlag GetAutowrapTrimFlags();Биты удаления пробелов у начала/конца строки; по умолчанию TrimEndEdgeSpaces. Сохраняются только TrimStartEdgeSpaces/TrimEndEdgeSpaces, остальные LineBreakFlag отбрасываются. Сам режим переноса задаётся AutowrapMode.
TextServer.LineBreakFlagСохранённые биты удаления пробелов у краёв строк.
GetButtonIconTexture2D
public Texture2D GetButtonIcon();Явно назначенная общая Texture2D либо null. При null отображение может использовать theme-иконку icon. Ресурс не копируется; изменения отслеживаются. Его вклад в минимум зависит от ExpandIcon и icon_max_width.
Texture2DЯвно назначенная общая Texture2D либо null, даже если рисуется theme-иконка.
GetClipTextbool
public bool GetClipText();Разрешает обрезание текста и убирает его естественную ширину из минимума, false по умолчанию. Не добавляет многоточие и не отменяет поля стиля, иконку или CustomMinimumSize.
booltrue, если включено обрезание текста.
GetIconAlignmentHorizontalAlignment
public HorizontalAlignment GetIconAlignment();Горизонтальное положение иконки, Left по умолчанию. Left/Right зеркальны в RTL. Center меняет совместный расчёт места и не является командой добавить отступ между иконкой и текстом.
HorizontalAlignmentГоризонтальное выравнивание иконки до RTL-зеркальности.
GetLanguagestring
public string GetLanguage();Язык шейпинга; пустая строка использует локаль Control. Это подсказка обработке текста, не переключатель языка приложения и не готовый перевод Text.
stringСохранённый код языка либо пустая строка для локали Control.
GetTextstring
public string GetText();Исходная строка надписи, пустая по умолчанию. Отображение может переводиться, переноситься и сокращаться; getter возвращает исходник. Изменение обновляет шейпинг и минимум. Это обычный текст, не BBCode-разметка.
stringИсходная строка до перевода и сокращения.
GetTextAlignmentHorizontalAlignment
public HorizontalAlignment GetTextAlignment();Горизонтальное выравнивание текста, Center по умолчанию. Left/Right зеркальны при RTL LayoutDirection Control. Не задаёт положение самой кнопки в контейнере и не заменяет IconAlignment.
HorizontalAlignmentГоризонтальное выравнивание текста до RTL-зеркальности.
GetTextDirectionControl.TextDirection
public Control.TextDirection GetTextDirection();Направление обработки текста, Auto по умолчанию. Inherited берёт направление раскладки Control. Не заменяет LayoutDirection для зеркальности расположения иконки и горизонтального выравнивания.
Control.TextDirectionСохранённый Control.TextDirection.
GetTextOverrunBehaviorTextServer.OverrunBehavior
public TextServer.OverrunBehavior GetTextOverrunBehavior();Сокращение при недостатке ширины, NoTrimming по умолчанию. TrimChar/TrimWord обрезают; варианты Ellipsis добавляют многоточие при выполнении условий, Force разрешает его для коротких надписей. Не меняет исходный Text и требует ограниченной области.
TextServer.OverrunBehaviorВыбранный TextServer.OverrunBehavior.
GetVerticalIconAlignmentVerticalAlignment
public VerticalAlignment GetVerticalIconAlignment();Вертикальное положение иконки, Center по умолчанию. Top/Bottom могут складывать высоту текста и иконки, увеличивая минимум. Не изменяет выравнивание Control в родительской раскладке.
VerticalAlignmentСохранённое вертикальное выравнивание иконки.
IsExpandIconbool
public bool IsExpandIcon();Подгонять иконку под доступную область с сохранением пропорций, false по умолчанию. true убирает исходный размер иконки из минимума. Ограничение theme icon_max_width продолжает действовать; доступное место задаёт раскладка.
booltrue, если иконка подгоняется к доступной области.
IsFlatbool
public bool IsFlat();Не рисовать фоновые StyleBox, false по умолчанию. Отдельный стиль фокуса продолжает рисоваться; минимум, поля стилей, кликабельность и Disabled работают по прежним правилам.
booltrue, если фоновые StyleBox не рисуются.
SetAutowrapModevoid
public void SetAutowrapMode(TextServer.AutowrapMode autowrapMode);Режим переноса, Off по умолчанию. Word/WordSmart учитывают границы слов, Arbitrary — границы графем. Нужна ограниченная доступная ширина. Перенос освобождает естественную ширину текста в минимуме, но может увеличить высоту.
| Имя | Тип | По умолчанию |
|---|---|---|
autowrapMode | TextServer.AutowrapMode | — |
autowrapModeРежим переноса, Off по умолчанию. Word/WordSmart учитывают границы слов, Arbitrary — границы графем. Нужна ограниченная доступная ширина. Перенос освобождает естественную ширину текста в минимуме, но может увеличить высоту.
SetAutowrapTrimFlagsvoid
public void SetAutowrapTrimFlags(TextServer.LineBreakFlag autowrapTrimFlags);Биты удаления пробелов у начала/конца строки; по умолчанию TrimEndEdgeSpaces. Сохраняются только TrimStartEdgeSpaces/TrimEndEdgeSpaces, остальные LineBreakFlag отбрасываются. Сам режим переноса задаётся AutowrapMode.
| Имя | Тип | По умолчанию |
|---|---|---|
autowrapTrimFlags | TextServer.LineBreakFlag | — |
autowrapTrimFlagsБиты удаления пробелов у начала/конца строки; по умолчанию TrimEndEdgeSpaces. Сохраняются только TrimStartEdgeSpaces/TrimEndEdgeSpaces, остальные LineBreakFlag отбрасываются. Сам режим переноса задаётся AutowrapMode.
SetButtonIconvoid
public void SetButtonIcon(Texture2D texture);Явно назначенная общая Texture2D либо null. При null отображение может использовать theme-иконку icon. Ресурс не копируется; изменения отслеживаются. Его вклад в минимум зависит от ExpandIcon и icon_max_width.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
textureЯвно назначенная общая Texture2D либо null. При null отображение может использовать theme-иконку icon. Ресурс не копируется; изменения отслеживаются. Его вклад в минимум зависит от ExpandIcon и icon_max_width.
SetClipTextvoid
public void SetClipText(bool enabled);Разрешает обрезание текста и убирает его естественную ширину из минимума, false по умолчанию. Не добавляет многоточие и не отменяет поля стиля, иконку или CustomMinimumSize.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledРазрешает обрезание текста и убирает его естественную ширину из минимума, false по умолчанию. Не добавляет многоточие и не отменяет поля стиля, иконку или CustomMinimumSize.
SetExpandIconvoid
public void SetExpandIcon(bool enabled);Подгонять иконку под доступную область с сохранением пропорций, false по умолчанию. true убирает исходный размер иконки из минимума. Ограничение theme icon_max_width продолжает действовать; доступное место задаёт раскладка.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledПодгонять иконку под доступную область с сохранением пропорций, false по умолчанию. true убирает исходный размер иконки из минимума. Ограничение theme icon_max_width продолжает действовать; доступное место задаёт раскладка.
SetFlatvoid
public void SetFlat(bool enabled);Не рисовать фоновые StyleBox, false по умолчанию. Отдельный стиль фокуса продолжает рисоваться; минимум, поля стилей, кликабельность и Disabled работают по прежним правилам.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledНе рисовать фоновые StyleBox, false по умолчанию. Отдельный стиль фокуса продолжает рисоваться; минимум, поля стилей, кликабельность и Disabled работают по прежним правилам.
SetIconAlignmentvoid
public void SetIconAlignment(HorizontalAlignment iconAlignment);Горизонтальное положение иконки, Left по умолчанию. Left/Right зеркальны в RTL. Center меняет совместный расчёт места и не является командой добавить отступ между иконкой и текстом.
| Имя | Тип | По умолчанию |
|---|---|---|
iconAlignment | HorizontalAlignment | — |
iconAlignmentГоризонтальное положение иконки, Left по умолчанию. Left/Right зеркальны в RTL. Center меняет совместный расчёт места и не является командой добавить отступ между иконкой и текстом.
SetLanguagevoid
public void SetLanguage(string language);Язык шейпинга; пустая строка использует локаль Control. Это подсказка обработке текста, не переключатель языка приложения и не готовый перевод Text.
| Имя | Тип | По умолчанию |
|---|---|---|
language | string | — |
languageЯзык шейпинга; пустая строка использует локаль Control. Это подсказка обработке текста, не переключатель языка приложения и не готовый перевод Text.
SetTextvoid
public void SetText(string text);Исходная строка надписи, пустая по умолчанию. Отображение может переводиться, переноситься и сокращаться; getter возвращает исходник. Изменение обновляет шейпинг и минимум. Это обычный текст, не BBCode-разметка.
| Имя | Тип | По умолчанию |
|---|---|---|
text | string | — |
textИсходная строка надписи, пустая по умолчанию. Отображение может переводиться, переноситься и сокращаться; getter возвращает исходник. Изменение обновляет шейпинг и минимум. Это обычный текст, не BBCode-разметка.
SetTextAlignmentvoid
public void SetTextAlignment(HorizontalAlignment alignment);Горизонтальное выравнивание текста, Center по умолчанию. Left/Right зеркальны при RTL LayoutDirection Control. Не задаёт положение самой кнопки в контейнере и не заменяет IconAlignment.
| Имя | Тип | По умолчанию |
|---|---|---|
alignment | HorizontalAlignment | — |
alignmentГоризонтальное выравнивание текста, Center по умолчанию. Left/Right зеркальны при RTL LayoutDirection Control. Не задаёт положение самой кнопки в контейнере и не заменяет IconAlignment.
SetTextDirectionvoid
public void SetTextDirection(Control.TextDirection direction);Направление обработки текста, Auto по умолчанию. Inherited берёт направление раскладки Control. Не заменяет LayoutDirection для зеркальности расположения иконки и горизонтального выравнивания.
| Имя | Тип | По умолчанию |
|---|---|---|
direction | Control.TextDirection | — |
directionНаправление обработки текста, Auto по умолчанию. Inherited берёт направление раскладки Control. Не заменяет LayoutDirection для зеркальности расположения иконки и горизонтального выравнивания.
SetTextOverrunBehaviorvoid
public void SetTextOverrunBehavior(TextServer.OverrunBehavior overrunBehavior);Сокращение при недостатке ширины, NoTrimming по умолчанию. TrimChar/TrimWord обрезают; варианты Ellipsis добавляют многоточие при выполнении условий, Force разрешает его для коротких надписей. Не меняет исходный Text и требует ограниченной области.
| Имя | Тип | По умолчанию |
|---|---|---|
overrunBehavior | TextServer.OverrunBehavior | — |
overrunBehaviorСокращение при недостатке ширины, NoTrimming по умолчанию. TrimChar/TrimWord обрезают; варианты Ellipsis добавляют многоточие при выполнении условий, Force разрешает его для коротких надписей. Не меняет исходный Text и требует ограниченной области.
SetVerticalIconAlignmentvoid
public void SetVerticalIconAlignment(VerticalAlignment verticalIconAlignment);Вертикальное положение иконки, Center по умолчанию. Top/Bottom могут складывать высоту текста и иконки, увеличивая минимум. Не изменяет выравнивание Control в родительской раскладке.
| Имя | Тип | По умолчанию |
|---|---|---|
verticalIconAlignment | VerticalAlignment | — |
verticalIconAlignmentВертикальное положение иконки, Center по умолчанию. Top/Bottom могут складывать высоту текста и иконки, увеличивая минимум. Не изменяет выравнивание Control в родительской раскладке.
Свойства темы
Это ключи ресурсов 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) |
icon_disabled_colorColor | Иконовая модуляция Color(1, 1, 1, 0.4) |
icon_focus_colorColor | Значок modulate Color(1, 1, 1, 1) |
icon_hover_colorColor | Значок модуляции Color(1, 1, 1, 1) |
icon_hover_pressed_colorColor | Значок модуляции Color(1, 1, 1, 1) |
icon_normal_colorColor | Значок по умолчанию модулирует Color(1, 1, 1, 1) |
icon_pressed_colorColor | Модуляция иконки Color(1, 1, 1, 1) |
align_to_largest_styleboxint | Эта константа действует как логическое значение. Если 0 |
h_separationint | Горизонтальное пространство между значком 4 |
icon_max_widthint | Максимально допустимая ширина значка 0 |
line_spacingint | Дополнительный вертикальный интервал между строками (в пикселях), интервал добавляется к спуску строки. Это значение может быть отрицательным. По умолчанию:0 |
outline_sizeint | Размер контура текста.
Примечание: При использовании шрифта с включенным 0 |
fontFont | |
font_sizeint | Font размер |
iconTexture2D | Button« значок », если текст представлен, значка будет помещена перед текстом.
Для редактирования зазора и промежутков между пиктограммой, использовать |
disabledStyleBox | |
disabled_mirroredStyleBox |
Сосредоточься |
focusStyleBox |
|
hoverStyleBox | |
hover_mirroredStyleBox |
|
hover_pressedStyleBox |
|
hover_pressed_mirroredStyleBox |
|
normalStyleBox | |
normal_mirroredStyleBox |
|
pressedStyleBox |
Ужасно |
pressed_mirroredStyleBox |
|