reckfellENGINE

TextureButton

Кнопка с отдельными текстурами состояний и маской клика.

На этой странице
class TextureButtonReckfellSharpНаследует BaseButton

TextureButton наследует Press, Pressed, ToggleMode и ButtonGroup от BaseButton, но рисует назначенные текстуры вместо темы обычного Button. Задайте TextureNormal; при необходимости добавьте TexturePressed, TextureHover, TextureDisabled и TextureFocused. Желательно использовать одинаковые размеры и совмещение всех состояний, особенно с маской клика.

По умолчанию StretchMode = Keep: текстура рисуется в исходном размере. Изменение Size само не растягивает её. Для масштабируемой кнопки задайте IgnoreTextureSize = true и подходящий StretchMode: Scale растягивает по осям, KeepAspectCentered вписывает и центрирует, KeepAspectCovered заполняет с центральным обрезанием. IgnoreTextureSize убирает встроенный минимум, но сохраняет CustomMinimumSize и ограничения родителя.

При IgnoreTextureSize = false минимум берётся из первой доступной основы: TextureNormal, иначе TexturePressed, иначе TextureHover, иначе TextureClickMask. Это не максимум размеров всех состояний. TextureDisabled и TextureFocused минимум не задают. Если используется только фокусная текстура, задайте размер явно.

Для нажатого вида при отсутствии TexturePressed используется Hover, затем Normal. Для Disabled без собственной текстуры используется Normal. TextureFocused рисуется поверх текущего состояния при фокусе; это отдельная накладка, не замена обычной текстуры во всех состояниях. Отсутствующая текстура может оставить состояние без рисунка, но не отменяет логику BaseButton.

TextureClickMask — отдельный Bitmap: true разрешает попадание, false исключает. Прозрачность TextureNormal не создаёт маску автоматически. Масштабирование и обрезание используют рассчитанную при рисовании геометрию. В текущей реализации проверка маски не применяет FlipH/FlipV: для асимметричной формы подготовьте зеркальную маску отдельно либо не отражайте изображение.

Текстуры и Bitmap — общие ресурсы. Изменения текстур отслеживаются; изменение уже назначенного Bitmap не подключено к такому же обновлению размеров. После изменения размеров маски явно вызовите UpdateMinimumSize и QueueRedraw либо назначьте новый ресурс. Для текста поверх кнопки используйте отдельный дочерний элемент; TextureButton не предоставляет Text.

BaseButton.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

TextureButtonКонструктор
# TextureButton
C#
public TextureButton();

Создаёт кнопку без текстур и маски: StretchMode = Keep, IgnoreTextureSize = false, отражения выключены. Поведение активации наследуется от BaseButton.

Свойства10

FlipHСвойство
# FlipH
C#
public bool FlipH { get; set; }

Отразить рисуемую текстуру по горизонтали, false по умолчанию. Не редактирует ресурс; текущая проверка TextureClickMask не применяет это отражение.

FlipVСвойство
# FlipV
C#
public bool FlipV { get; set; }

Отразить рисуемую текстуру по вертикали, false по умолчанию. Не редактирует ресурс; для асимметричной маски клика требуется отдельное соответствие.

IgnoreTextureSizeСвойство
# IgnoreTextureSize
C#
public bool IgnoreTextureSize { get; set; }

Игнорировать минимум от основной текстуры/маски, false по умолчанию. Не задаёт способ масштабирования и не отменяет CustomMinimumSize.

StretchModeСвойство
# StretchMode
C#
public TextureButton.StretchModeEnum StretchMode { get; set; }

Способ отображения, Keep по умолчанию. Scale растягивает, Tile повторяет, Keep/KeepCentered сохраняют размер, KeepAspect-варианты сохраняют пропорции. Для уменьшения ниже исходного минимума отдельно включите IgnoreTextureSize.

TextureClickMaskСвойство
# TextureClickMask
C#
public Bitmap TextureClickMask { get; set; }

Общий Bitmap попадания, не Texture2D. true разрешает точку, false исключает; альфа изображения автоматически не используется. В текущем hit-test FlipH/FlipV не отражают маску. Изменение её размеров требует явного обновления минимума/перерисовки.

TextureDisabledСвойство
# TextureDisabled
C#
public Texture2D TextureDisabled { get; set; }

Общая Texture2D отключённого состояния либо null. Без неё используется Normal. Не задаёт минимум Control и не включает Disabled сама по себе.

TextureFocusedСвойство
# TextureFocused
C#
public Texture2D TextureFocused { get; set; }

Общая накладка Texture2D для фокуса либо null. Рисуется поверх состояния; при отсутствии остальных может быть единственным изображением. Не задаёт минимум Control.

TextureHoverСвойство
# TextureHover
C#
public Texture2D TextureHover { get; set; }

Общая Texture2D наведения либо null. Участвует в минимуме только без Normal и Pressed; отсутствие может использовать Normal или выбранное Pressed-состояние.

TextureNormalСвойство
# TextureNormal
C#
public Texture2D TextureNormal { get; set; }

Базовая общая Texture2D либо null. Имеет первый приоритет при расчёте минимума, даже если другие состояния крупнее.

TexturePressedСвойство
# TexturePressed
C#
public Texture2D TexturePressed { get; set; }

Общая Texture2D нажатого состояния либо null. При отсутствии используется Hover, затем Normal. Второй приоритет минимума после Normal.

Методы20

GetClickMaskBitmap
# GetClickMask
C#
public Bitmap GetClickMask();

Общий Bitmap попадания, не Texture2D. true разрешает точку, false исключает; альфа изображения автоматически не используется. В текущем hit-test FlipH/FlipV не отражают маску. Изменение её размеров требует явного обновления минимума/перерисовки.

Возвращает Bitmap

Общий Bitmap либо null.

GetIgnoreTextureSizebool
# GetIgnoreTextureSize
C#
public bool GetIgnoreTextureSize();

Игнорировать минимум от основной текстуры/маски, false по умолчанию. Не задаёт способ масштабирования и не отменяет CustomMinimumSize.

Возвращает bool

true, если встроенный минимум текстуры игнорируется.

GetStretchModeTextureButton.StretchModeEnum
# GetStretchMode
C#
public TextureButton.StretchModeEnum GetStretchMode();

Способ отображения, Keep по умолчанию. Scale растягивает, Tile повторяет, Keep/KeepCentered сохраняют размер, KeepAspect-варианты сохраняют пропорции. Для уменьшения ниже исходного минимума отдельно включите IgnoreTextureSize.

Возвращает TextureButton.StretchModeEnum

Выбранный TextureButton.StretchModeEnum.

GetTextureDisabledTexture2D
# GetTextureDisabled
C#
public Texture2D GetTextureDisabled();

Общая Texture2D отключённого состояния либо null. Без неё используется Normal. Не задаёт минимум Control и не включает Disabled сама по себе.

Возвращает Texture2D

Явно назначенная общая Texture2D этого состояния либо null; не выбранный fallback.

GetTextureFocusedTexture2D
# GetTextureFocused
C#
public Texture2D GetTextureFocused();

Общая накладка Texture2D для фокуса либо null. Рисуется поверх состояния; при отсутствии остальных может быть единственным изображением. Не задаёт минимум Control.

Возвращает Texture2D

Явно назначенная общая Texture2D этого состояния либо null; не выбранный fallback.

GetTextureHoverTexture2D
# GetTextureHover
C#
public Texture2D GetTextureHover();

Общая Texture2D наведения либо null. Участвует в минимуме только без Normal и Pressed; отсутствие может использовать Normal или выбранное Pressed-состояние.

Возвращает Texture2D

Явно назначенная общая Texture2D этого состояния либо null; не выбранный fallback.

GetTextureNormalTexture2D
# GetTextureNormal
C#
public Texture2D GetTextureNormal();

Базовая общая Texture2D либо null. Имеет первый приоритет при расчёте минимума, даже если другие состояния крупнее.

Возвращает Texture2D

Явно назначенная общая Texture2D этого состояния либо null; не выбранный fallback.

GetTexturePressedTexture2D
# GetTexturePressed
C#
public Texture2D GetTexturePressed();

Общая Texture2D нажатого состояния либо null. При отсутствии используется Hover, затем Normal. Второй приоритет минимума после Normal.

Возвращает Texture2D

Явно назначенная общая Texture2D этого состояния либо null; не выбранный fallback.

IsFlippedHbool
# IsFlippedH
C#
public bool IsFlippedH();

Отразить рисуемую текстуру по горизонтали, false по умолчанию. Не редактирует ресурс; текущая проверка TextureClickMask не применяет это отражение.

Возвращает bool

true для горизонтального отражения рисунка.

IsFlippedVbool
# IsFlippedV
C#
public bool IsFlippedV();

Отразить рисуемую текстуру по вертикали, false по умолчанию. Не редактирует ресурс; для асимметричной маски клика требуется отдельное соответствие.

Возвращает bool

true для вертикального отражения рисунка.

SetClickMaskvoid
# SetClickMask
C#
public void SetClickMask(Bitmap mask);

Общий Bitmap попадания, не Texture2D. true разрешает точку, false исключает; альфа изображения автоматически не используется. В текущем hit-test FlipH/FlipV не отражают маску. Изменение её размеров требует явного обновления минимума/перерисовки.

Параметры
ИмяТипПо умолчанию
maskBitmap—
mask

Общий Bitmap попадания, не Texture2D. true разрешает точку, false исключает; альфа изображения автоматически не используется. В текущем hit-test FlipH/FlipV не отражают маску. Изменение её размеров требует явного обновления минимума/перерисовки.

SetFlipHvoid
# SetFlipH
C#
public void SetFlipH(bool enable);

Отразить рисуемую текстуру по горизонтали, false по умолчанию. Не редактирует ресурс; текущая проверка TextureClickMask не применяет это отражение.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

Отразить рисуемую текстуру по горизонтали, false по умолчанию. Не редактирует ресурс; текущая проверка TextureClickMask не применяет это отражение.

SetFlipVvoid
# SetFlipV
C#
public void SetFlipV(bool enable);

Отразить рисуемую текстуру по вертикали, false по умолчанию. Не редактирует ресурс; для асимметричной маски клика требуется отдельное соответствие.

Параметры
ИмяТипПо умолчанию
enablebool—
enable

Отразить рисуемую текстуру по вертикали, false по умолчанию. Не редактирует ресурс; для асимметричной маски клика требуется отдельное соответствие.

SetIgnoreTextureSizevoid
# SetIgnoreTextureSize
C#
public void SetIgnoreTextureSize(bool ignore);

Игнорировать минимум от основной текстуры/маски, false по умолчанию. Не задаёт способ масштабирования и не отменяет CustomMinimumSize.

Параметры
ИмяТипПо умолчанию
ignorebool—
ignore

Игнорировать минимум от основной текстуры/маски, false по умолчанию. Не задаёт способ масштабирования и не отменяет CustomMinimumSize.

SetStretchModevoid
# SetStretchMode
C#
public void SetStretchMode(TextureButton.StretchModeEnum mode);

Способ отображения, Keep по умолчанию. Scale растягивает, Tile повторяет, Keep/KeepCentered сохраняют размер, KeepAspect-варианты сохраняют пропорции. Для уменьшения ниже исходного минимума отдельно включите IgnoreTextureSize.

Параметры
ИмяТипПо умолчанию
modeTextureButton.StretchModeEnum—
mode

Способ отображения, Keep по умолчанию. Scale растягивает, Tile повторяет, Keep/KeepCentered сохраняют размер, KeepAspect-варианты сохраняют пропорции. Для уменьшения ниже исходного минимума отдельно включите IgnoreTextureSize.

SetTextureDisabledvoid
# SetTextureDisabled
C#
public void SetTextureDisabled(Texture2D texture);

Общая Texture2D отключённого состояния либо null. Без неё используется Normal. Не задаёт минимум Control и не включает Disabled сама по себе.

Параметры
ИмяТипПо умолчанию
textureTexture2D—
texture

Общая Texture2D отключённого состояния либо null. Без неё используется Normal. Не задаёт минимум Control и не включает Disabled сама по себе.

SetTextureFocusedvoid
# SetTextureFocused
C#
public void SetTextureFocused(Texture2D texture);

Общая накладка Texture2D для фокуса либо null. Рисуется поверх состояния; при отсутствии остальных может быть единственным изображением. Не задаёт минимум Control.

Параметры
ИмяТипПо умолчанию
textureTexture2D—
texture

Общая накладка Texture2D для фокуса либо null. Рисуется поверх состояния; при отсутствии остальных может быть единственным изображением. Не задаёт минимум Control.

SetTextureHovervoid
# SetTextureHover
C#
public void SetTextureHover(Texture2D texture);

Общая Texture2D наведения либо null. Участвует в минимуме только без Normal и Pressed; отсутствие может использовать Normal или выбранное Pressed-состояние.

Параметры
ИмяТипПо умолчанию
textureTexture2D—
texture

Общая Texture2D наведения либо null. Участвует в минимуме только без Normal и Pressed; отсутствие может использовать Normal или выбранное Pressed-состояние.

SetTextureNormalvoid
# SetTextureNormal
C#
public void SetTextureNormal(Texture2D texture);

Базовая общая Texture2D либо null. Имеет первый приоритет при расчёте минимума, даже если другие состояния крупнее.

Параметры
ИмяТипПо умолчанию
textureTexture2D—
texture

Базовая общая Texture2D либо null. Имеет первый приоритет при расчёте минимума, даже если другие состояния крупнее.

SetTexturePressedvoid
# SetTexturePressed
C#
public void SetTexturePressed(Texture2D texture);

Общая Texture2D нажатого состояния либо null. При отсутствии используется Hover, затем Normal. Второй приоритет минимума после Normal.

Параметры
ИмяТипПо умолчанию
textureTexture2D—
texture

Общая Texture2D нажатого состояния либо null. При отсутствии используется Hover, затем Normal. Второй приоритет минимума после Normal.

TextureButton.StretchModeEnum

ЗначениеОписание
Keep = 2

Текстура сохраняет свой исходный размер и располагается в верхнем левом углу ограничивающего прямоугольника.

KeepAspect = 4

Масштабируйте текстуру так, чтобы она вписывалась в ограничивающий прямоугольник узла, но сохраняйте пропорции текстуры.

KeepAspectCentered = 5

Масштабируйте текстуру так, чтобы она вписывалась в ограничивающий прямоугольник узла, отцентрируйте ее и сохраните пропорции.

KeepAspectCovered = 6

Масштабируйте текстуру так, чтобы короткая сторона соответствовала ограничивающему прямоугольнику. Другая сторона обрезалась до границ узла.

KeepCentered = 3

Текстура сохраняет свой исходный размер и остается в центре ограничивающего прямоугольника узла.

Scale = 0

Масштабируйте так, чтобы он соответствовал ограничивающему прямоугольнику узла.

Tile = 1

Размещает в виде плиток, внутри ограничивающего прямоугольника узла.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.