ColorPickerButton
Кнопка цвета с лениво создаваемой встроенной палитрой и отдельными сигналами редактирования.
Задайте Color и подключите ColorChanged, чтобы применять пользовательские изменения к модели. Программное присваивание Color обновляет кнопку и уже созданную палитру, но ColorChanged не испускает. Если одно действие должно работать и из UI, и из кода, вынесите обновление модели в общий метод и вызывайте его явно.
GetPicker и GetPopup при первом вызове создают внутренние объекты, но не открывают окно. PickerCreated испускается один раз после применения текущих Color, EditAlpha и EditIntensity. Подпишитесь до первого getter, если хотите настроить палитру именно при создании. В обработчике уже можно вызвать GetPicker.
Возвращаемые ColorPicker и PopupPanel принадлежат кнопке: popup — её внутренний ребёнок, picker — ребёнок popup. Не освобождайте и не переносите их отдельно; освобождение кнопки освобождает обоих. Для внешнего окна с независимым временем жизни создайте собственный ColorPicker.
Цвет меняйте через кнопку. Прямое присваивание GetPicker().Color само не обновляет Color кнопки и не вызывает её ColorChanged. Повторное присваивание прежнего Color кнопке также не синхронизирует вручную изменённую палитру: setter пропускает равное значение. Настройки вида палитры меняйте через GetPicker, а значение цвета — через Color кнопки.
EditAlpha и EditIntensity управляют доступностью соответствующих элементов редактирования, а не очисткой данных. Отключение alpha не делает цвет непрозрачным; отключение intensity не ограничивает сохранённые RGB диапазоном 0…1. Значение HDR не включает свечение или тональную компрессию сцены: это отдельные настройки рендеринга.
PopupClosed сообщает о закрытии, без результата «ОК/Отмена». Не считайте его подтверждением применения цвета. Для отменяемого редактирования храните исходное значение в своей модели и явно задайте правила применения/отката. ColorChanged также может прийти при восстановлении цвета через отмену; это уведомление о значении, а не только о новом выборе.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
ColorPickerButtonКонструктор
public ColorPickerButton();Создаёт кнопку с чёрным цветом (alpha = 1), EditAlpha/EditIntensity = true и включённым ToggleMode. Встроенные popup и picker ещё не создаются.
Свойства3
ColorСвойство
public Color Color { get; set; }Текущий цвет, включая alpha и значения RGB выше 1. Присваивание синхронизирует существующую палитру без ColorChanged. Равное значение пропускается.
EditAlphaСвойство
public bool EditAlpha { get; set; }Показывать редактирование alpha, true по умолчанию. false сохраняет alpha текущего цвета; это не принудительная непрозрачность. Передаётся существующей и будущей палитре.
EditIntensityСвойство
public bool EditIntensity { get; set; }Показывать редактирование интенсивности, true по умолчанию. false не ограничивает сохранённые HDR-компоненты и не выключает эффекты сцены. Передаётся встроенной палитре.
Методы8
GetPickColorColor
public Color GetPickColor();Текущий цвет, включая alpha и значения RGB выше 1. Присваивание синхронизирует существующую палитру без ColorChanged. Равное значение пропускается.
ColorТекущий цвет, включая alpha и значения RGB выше 1. Присваивание синхронизирует существующую палитру без ColorChanged. Равное значение пропускается.
GetPickerColorPicker
public ColorPicker GetPicker();Возвращает принадлежащую кнопке палитру ColorPicker, создавая её при первом вызове. Не открывает окно. Результат не освобождайте и не переносите; значение меняйте через Color кнопки.
ColorPickerВозвращает принадлежащую кнопке палитру ColorPicker, создавая её при первом вызове. Не открывает окно. Результат не освобождайте и не переносите; значение меняйте через Color кнопки.
GetPopupPopupPanel
public PopupPanel GetPopup();Возвращает принадлежащий кнопке PopupPanel; при первом вызове также создаётся picker. Не открывает окно. Результат не освобождайте и не переносите отдельно.
PopupPanelВозвращает принадлежащий кнопке PopupPanel; при первом вызове также создаётся picker. Не открывает окно. Результат не освобождайте и не переносите отдельно.
IsEditingAlphabool
public bool IsEditingAlpha();Показывать редактирование alpha, true по умолчанию. false сохраняет alpha текущего цвета; это не принудительная непрозрачность. Передаётся существующей и будущей палитре.
boolПоказывать редактирование alpha, true по умолчанию. false сохраняет alpha текущего цвета; это не принудительная непрозрачность. Передаётся существующей и будущей палитре.
IsEditingIntensitybool
public bool IsEditingIntensity();Показывать редактирование интенсивности, true по умолчанию. false не ограничивает сохранённые HDR-компоненты и не выключает эффекты сцены. Передаётся встроенной палитре.
boolПоказывать редактирование интенсивности, true по умолчанию. false не ограничивает сохранённые HDR-компоненты и не выключает эффекты сцены. Передаётся встроенной палитре.
SetEditAlphavoid
public void SetEditAlpha(bool show);Показывать редактирование alpha, true по умолчанию. false сохраняет alpha текущего цвета; это не принудительная непрозрачность. Передаётся существующей и будущей палитре.
| Имя | Тип | По умолчанию |
|---|---|---|
show | bool | — |
showПоказывать соответствующий элемент редактирования, не изменяя сохранённые компоненты цвета.
SetEditIntensityvoid
public void SetEditIntensity(bool show);Показывать редактирование интенсивности, true по умолчанию. false не ограничивает сохранённые HDR-компоненты и не выключает эффекты сцены. Передаётся встроенной палитре.
| Имя | Тип | По умолчанию |
|---|---|---|
show | bool | — |
showПоказывать соответствующий элемент редактирования, не изменяя сохранённые компоненты цвета.
SetPickColorvoid
public void SetPickColor(Color color);Текущий цвет, включая alpha и значения RGB выше 1. Присваивание синхронизирует существующую палитру без ColorChanged. Равное значение пропускается.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorНовое значение Color с alpha; RGB может быть выше 1.
Сигналы и события3
ColorChangedСобытие
public event ColorPickerButton.ColorChangedEventHandler ColorChanged;Изменение значения из встроенной палитры, в том числе восстановление при отмене. Color кнопки обновлён до вызова обработчика. Программный setter Color сам сигнал не испускает.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorНовое значение Color с alpha; RGB может быть выше 1.
PickerCreatedСобытие
public event Action PickerCreated;Однократное создание внутренних popup и picker после применения исходных настроек. Может произойти из GetPicker/GetPopup ещё до открытия окна; подпишитесь заранее.
PopupClosedСобытие
public event Action PopupClosed;Встроенное окно закрыто; сигнал без аргумента результата. Не означает подтверждение цвета, не заменяет ColorChanged и не испускается повторным Hide уже скрытого окна.
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
bgTexture2D | Фон прямоугольника предварительного просмотра цвета на кнопке. |