ColorPicker
Встроенная панель выбора цвета с режимами редактирования, пресетами и отдельной историей недавних цветов.
ColorPicker — сама панель, без отдельного popup и результата «ОК/Отмена». Добавьте её в свой интерфейс или используйте ColorPickerButton для готовой кнопки с окном. Значение задавайте через Color, пользовательские изменения получайте через ColorChanged. Программный setter Color сигнал не испускает; обновление модели из кода вызывайте явно.
ColorMode выбирает представление компонентов, PickerShape — форму области выбора. Это разные настройки, они не преобразуют хранимое значение при переключении. RGB/HSV/Linear/OKHSL выбирайте под задачу пользователя; переключение режима не задаёт цветовое пространство проекта или текстуры.
EditAlpha и EditIntensity управляют редактированием, а не очисткой компонентов: скрытие alpha сохраняет прозрачность, отключение intensity не обрезает уже заданный HDR-цвет. SlidersVisible, HexVisible, ColorModesVisible, PresetsVisible и SamplerVisible скрывают соответствующие части интерфейса, не удаляя цвет и пресеты. HexVisible относится к блоку текстового ввода, а не к ограничению формата хранения.
DeferredMode откладывает уведомления при перетаскивании до завершения жеста; внутренний цвет/предпросмотр могут меняться раньше. Это не транзакция, не асинхронная задача и не подтверждение выбора. Текстовый ввод и выбор пресета не обязаны ждать завершения drag. Для собственного «Применить/Отмена» храните исходный цвет и отдельно управляйте записью в модель.
AddPreset добавляет уникальный цвет в палитру; повтор перемещает его в конец. ErasePreset удаляет совпадающее значение. Эти программные операции не испускают PresetAdded/PresetRemoved: сигналы относятся к действиям UI. Сохраняйте палитру сами, если она должна переживать перезапуск приложения; список контрола не является хранилищем проекта. GetPresets и GetRecentPresets возвращают снимки Color[], их изменение не меняет палитру.
Недавние цвета — отдельная ограниченная история. AddRecentPreset для уже имеющегося цвета может переключить текущий цвет и испустить ColorChanged через внутренний выбор образца; не считайте его безусловно тихой записью в историю. Не полагайтесь на постоянные индексы, размер истории или порядок визуальных кнопок. Для точного управляемого журнала храните свой список. CanAddSwatches = false отключает пользовательское добавление/удаление, но не запрещает вызовы AddPreset/ErasePreset из кода.
Пипетка зависит от платформы, разрешений и доступного способа захвата экрана. Видимость её UI не гарантирует возможность считывать цвет из других приложений. Не запускайте выбор с экрана автоматически при создании панели.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
ColorPickerКонструктор
public ColorPicker();Создаёт панель с белым цветом, режимом RGB, формой HsvRectangle, включёнными элементами редактирования и DeferredMode = false.
Свойства12
CanAddSwatchesСвойство
public bool CanAddSwatches { get; set; }Разрешает пользовательское добавление и удаление образцов, true по умолчанию. Не делает Color read-only и не блокирует программные методы палитры.
ColorСвойство
public Color Color { get; set; }Текущее значение Color с alpha и HDR-компонентами. Программное присваивание обновляет панель без ColorChanged. Это значение, не подтверждение или автоматическая запись в материал.
ColorModeСвойство
public ColorPicker.ColorModeType ColorMode { get; set; }Режим представления компонентов: Rgb, Hsv, Linear или Okhsl. По умолчанию Rgb. Переключение сохраняет Color; не задаёт цветовое пространство проекта. Вместо устаревшего Raw используйте Linear.
ColorModesVisibleСвойство
public bool ColorModesVisible { get; set; }Показывать UI переключения режимов, true по умолчанию. false не меняет текущий ColorMode и не запрещает setter из кода.
DeferredModeСвойство
public bool DeferredMode { get; set; }Откладывать ColorChanged при перетаскивании до его завершения, false по умолчанию. Color может меняться в ходе drag; это не откат и не общий запрет сигналов от текста/пресетов. Программный Color остаётся без сигнала.
EditAlphaСвойство
public bool EditAlpha { get; set; }Разрешает редактирование alpha, true по умолчанию. false скрывает управление alpha, сохраняя текущее значение прозрачности.
EditIntensityСвойство
public bool EditIntensity { get; set; }Разрешает отдельное редактирование интенсивности, true по умолчанию. false не обрезает сохранённые HDR-компоненты до 1 и не выключает свечение сцены.
HexVisibleСвойство
public bool HexVisible { get; set; }Показывать секцию текстового ввода цвета, true по умолчанию. Это видимость UI, не принудительное хранение Color в HEX.
PickerShapeСвойство
public ColorPicker.PickerShapeType PickerShape { get; set; }Форма области выбора, HsvRectangle по умолчанию. None скрывает область и кнопку выбора формы; не удаляет Color и остальные элементы редактирования.
PresetsVisibleСвойство
public bool PresetsVisible { get; set; }Показывать разделы палитры и недавних цветов, true по умолчанию. false сохраняет списки и доступ к GetPresets/GetRecentPresets.
SamplerVisibleСвойство
public bool SamplerVisible { get; set; }Показывать секцию образца/пипетки, true по умолчанию. Не запускает захват экрана и не гарантирует разрешения или поддержку платформы.
SlidersVisibleСвойство
public bool SlidersVisible { get; set; }Показывать секцию ползунков компонентов, true по умолчанию. Скрытие не меняет Color.
Методы30
AddPresetvoid
public void AddPreset(Color color);Добавляет цвет в палитру; точный повтор перемещает существующий образец в конец без дубликата. Не меняет Color и не испускает PresetAdded. Работает при CanAddSwatches = false; долговременное сохранение организуйте отдельно.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЗначение Color с alpha; совпадение образца учитывает все компоненты.
AddRecentPresetvoid
public void AddRecentPreset(Color color);Добавляет цвет в ограниченную историю. Повтор существующего образца может переместить его в конец, выбрать этот цвет и испустить ColorChanged через внутренний обработчик. Не является гарантированно тихой записью в журнал.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЗначение Color с alpha; совпадение образца учитывает все компоненты.
AreModesVisiblebool
public bool AreModesVisible();Показывать UI переключения режимов, true по умолчанию. false не меняет текущий ColorMode и не запрещает setter из кода.
boolПоказывать UI переключения режимов, true по умолчанию. false не меняет текущий ColorMode и не запрещает setter из кода.
ArePresetsVisiblebool
public bool ArePresetsVisible();Показывать разделы палитры и недавних цветов, true по умолчанию. false сохраняет списки и доступ к GetPresets/GetRecentPresets.
boolПоказывать разделы палитры и недавних цветов, true по умолчанию. false сохраняет списки и доступ к GetPresets/GetRecentPresets.
AreSlidersVisiblebool
public bool AreSlidersVisible();Показывать секцию ползунков компонентов, true по умолчанию. Скрытие не меняет Color.
boolПоказывать секцию ползунков компонентов, true по умолчанию. Скрытие не меняет Color.
AreSwatchesEnabledbool
public bool AreSwatchesEnabled();Разрешает пользовательское добавление и удаление образцов, true по умолчанию. Не делает Color read-only и не блокирует программные методы палитры.
boolРазрешает пользовательское добавление и удаление образцов, true по умолчанию. Не делает Color read-only и не блокирует программные методы палитры.
ErasePresetvoid
public void ErasePreset(Color color);Удаляет совпадающий цвет из палитры, отсутствующее значение пропускает. Не испускает PresetRemoved; программное удаление не запрещается CanAddSwatches.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЗначение Color с alpha; совпадение образца учитывает все компоненты.
EraseRecentPresetvoid
public void EraseRecentPreset(Color color);Удаляет совпадающее значение из истории, отсутствующее пропускает. Не испускает PresetRemoved; это отдельный список от основной палитры.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЗначение Color с alpha; совпадение образца учитывает все компоненты.
GetColorModeColorPicker.ColorModeType
public ColorPicker.ColorModeType GetColorMode();Режим представления компонентов: Rgb, Hsv, Linear или Okhsl. По умолчанию Rgb. Переключение сохраняет Color; не задаёт цветовое пространство проекта. Вместо устаревшего Raw используйте Linear.
ColorPicker.ColorModeTypeРежим представления компонентов: Rgb, Hsv, Linear или Okhsl. По умолчанию Rgb. Переключение сохраняет Color; не задаёт цветовое пространство проекта. Вместо устаревшего Raw используйте Linear.
GetPickColorColor
public Color GetPickColor();Текущее значение Color с alpha и HDR-компонентами. Программное присваивание обновляет панель без ColorChanged. Это значение, не подтверждение или автоматическая запись в материал.
ColorТекущее значение Color с alpha и HDR-компонентами. Программное присваивание обновляет панель без ColorChanged. Это значение, не подтверждение или автоматическая запись в материал.
GetPickerShapeColorPicker.PickerShapeType
public ColorPicker.PickerShapeType GetPickerShape();Форма области выбора, HsvRectangle по умолчанию. None скрывает область и кнопку выбора формы; не удаляет Color и остальные элементы редактирования.
ColorPicker.PickerShapeTypeФорма области выбора, HsvRectangle по умолчанию. None скрывает область и кнопку выбора формы; не удаляет Color и остальные элементы редактирования.
GetPresetsColor[]
public Color[] GetPresets();Возвращает независимый Color[] в порядке списка палитры. Изменение массива не меняет контрол. Индексы меняются после добавления/удаления/повтора цвета.
Color[]Возвращает независимый Color[] в порядке списка палитры. Изменение массива не меняет контрол. Индексы меняются после добавления/удаления/повтора цвета.
GetRecentPresetsColor[]
public Color[] GetRecentPresets();Возвращает независимый Color[] истории, не гарантированный визуальный порядок кнопок. История ограничена и не заменяет сохранение палитры приложением.
Color[]Возвращает независимый Color[] истории, не гарантированный визуальный порядок кнопок. История ограничена и не заменяет сохранение палитры приложением.
IsDeferredModebool
public bool IsDeferredMode();Откладывать ColorChanged при перетаскивании до его завершения, false по умолчанию. Color может меняться в ходе drag; это не откат и не общий запрет сигналов от текста/пресетов. Программный Color остаётся без сигнала.
boolОткладывать ColorChanged при перетаскивании до его завершения, false по умолчанию. Color может меняться в ходе drag; это не откат и не общий запрет сигналов от текста/пресетов. Программный Color остаётся без сигнала.
IsEditingAlphabool
public bool IsEditingAlpha();Разрешает редактирование alpha, true по умолчанию. false скрывает управление alpha, сохраняя текущее значение прозрачности.
boolРазрешает редактирование alpha, true по умолчанию. false скрывает управление alpha, сохраняя текущее значение прозрачности.
IsEditingIntensitybool
public bool IsEditingIntensity();Разрешает отдельное редактирование интенсивности, true по умолчанию. false не обрезает сохранённые HDR-компоненты до 1 и не выключает свечение сцены.
boolРазрешает отдельное редактирование интенсивности, true по умолчанию. false не обрезает сохранённые HDR-компоненты до 1 и не выключает свечение сцены.
IsHexVisiblebool
public bool IsHexVisible();Показывать секцию текстового ввода цвета, true по умолчанию. Это видимость UI, не принудительное хранение Color в HEX.
boolПоказывать секцию текстового ввода цвета, true по умолчанию. Это видимость UI, не принудительное хранение Color в HEX.
IsSamplerVisiblebool
public bool IsSamplerVisible();Показывать секцию образца/пипетки, true по умолчанию. Не запускает захват экрана и не гарантирует разрешения или поддержку платформы.
boolПоказывать секцию образца/пипетки, true по умолчанию. Не запускает захват экрана и не гарантирует разрешения или поддержку платформы.
SetCanAddSwatchesvoid
public void SetCanAddSwatches(bool enabled);Разрешает пользовательское добавление и удаление образцов, true по умолчанию. Не делает Color read-only и не блокирует программные методы палитры.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledРазрешает пользовательское добавление и удаление образцов, true по умолчанию. Не делает Color read-only и не блокирует программные методы палитры.
SetColorModevoid
public void SetColorMode(ColorPicker.ColorModeType colorMode);Режим представления компонентов: Rgb, Hsv, Linear или Okhsl. По умолчанию Rgb. Переключение сохраняет Color; не задаёт цветовое пространство проекта. Вместо устаревшего Raw используйте Linear.
| Имя | Тип | По умолчанию |
|---|---|---|
colorMode | ColorPicker.ColorModeType | — |
colorModeДопустимый ColorModeType; используйте Linear вместо Raw.
SetDeferredModevoid
public void SetDeferredMode(bool mode);Откладывать ColorChanged при перетаскивании до его завершения, false по умолчанию. Color может меняться в ходе drag; это не откат и не общий запрет сигналов от текста/пресетов. Программный Color остаётся без сигнала.
| Имя | Тип | По умолчанию |
|---|---|---|
mode | bool | — |
modeОткладывать ColorChanged при перетаскивании до его завершения, false по умолчанию. Color может меняться в ходе drag; это не откат и не общий запрет сигналов от текста/пресетов. Программный Color остаётся без сигнала.
SetEditAlphavoid
public void SetEditAlpha(bool show);Разрешает редактирование alpha, true по умолчанию. false скрывает управление alpha, сохраняя текущее значение прозрачности.
| Имя | Тип | По умолчанию |
|---|---|---|
show | bool | — |
showРазрешает редактирование alpha, true по умолчанию. false скрывает управление alpha, сохраняя текущее значение прозрачности.
SetEditIntensityvoid
public void SetEditIntensity(bool show);Разрешает отдельное редактирование интенсивности, true по умолчанию. false не обрезает сохранённые HDR-компоненты до 1 и не выключает свечение сцены.
| Имя | Тип | По умолчанию |
|---|---|---|
show | bool | — |
showРазрешает отдельное редактирование интенсивности, true по умолчанию. false не обрезает сохранённые HDR-компоненты до 1 и не выключает свечение сцены.
SetHexVisiblevoid
public void SetHexVisible(bool visible);Показывать секцию текстового ввода цвета, true по умолчанию. Это видимость UI, не принудительное хранение Color в HEX.
| Имя | Тип | По умолчанию |
|---|---|---|
visible | bool | — |
visibleПоказывать секцию текстового ввода цвета, true по умолчанию. Это видимость UI, не принудительное хранение Color в HEX.
SetModesVisiblevoid
public void SetModesVisible(bool visible);Показывать UI переключения режимов, true по умолчанию. false не меняет текущий ColorMode и не запрещает setter из кода.
| Имя | Тип | По умолчанию |
|---|---|---|
visible | bool | — |
visibleПоказывать UI переключения режимов, true по умолчанию. false не меняет текущий ColorMode и не запрещает setter из кода.
SetPickColorvoid
public void SetPickColor(Color color);Текущее значение Color с alpha и HDR-компонентами. Программное присваивание обновляет панель без ColorChanged. Это значение, не подтверждение или автоматическая запись в материал.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЗначение Color с alpha; совпадение образца учитывает все компоненты.
SetPickerShapevoid
public void SetPickerShape(ColorPicker.PickerShapeType shape);Форма области выбора, HsvRectangle по умолчанию. None скрывает область и кнопку выбора формы; не удаляет Color и остальные элементы редактирования.
| Имя | Тип | По умолчанию |
|---|---|---|
shape | ColorPicker.PickerShapeType | — |
shapeДопустимый PickerShapeType; None скрывает область выбора.
SetPresetsVisiblevoid
public void SetPresetsVisible(bool visible);Показывать разделы палитры и недавних цветов, true по умолчанию. false сохраняет списки и доступ к GetPresets/GetRecentPresets.
| Имя | Тип | По умолчанию |
|---|---|---|
visible | bool | — |
visibleПоказывать разделы палитры и недавних цветов, true по умолчанию. false сохраняет списки и доступ к GetPresets/GetRecentPresets.
SetSamplerVisiblevoid
public void SetSamplerVisible(bool visible);Показывать секцию образца/пипетки, true по умолчанию. Не запускает захват экрана и не гарантирует разрешения или поддержку платформы.
| Имя | Тип | По умолчанию |
|---|---|---|
visible | bool | — |
visibleПоказывать секцию образца/пипетки, true по умолчанию. Не запускает захват экрана и не гарантирует разрешения или поддержку платформы.
SetSlidersVisiblevoid
public void SetSlidersVisible(bool visible);Показывать секцию ползунков компонентов, true по умолчанию. Скрытие не меняет Color.
| Имя | Тип | По умолчанию |
|---|---|---|
visible | bool | — |
visibleПоказывать секцию ползунков компонентов, true по умолчанию. Скрытие не меняет Color.
Сигналы и события3
ColorChangedСобытие
public event ColorPicker.ColorChangedEventHandler ColorChanged;Изменение из интерактивного редактирования; программный Color его не испускает. Может также прийти при повторном AddRecentPreset через внутренний выбор. При DeferredMode drag-уведомление откладывается; это не подтверждение выбора.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЗначение Color с alpha; совпадение образца учитывает все компоненты.
PresetAddedСобытие
public event ColorPicker.PresetAddedEventHandler PresetAdded;Пользователь добавил образец палитры через UI. Прямой AddPreset этот сигнал не испускает; для сохранения изменений из кода вызывайте свою логику явно.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЗначение Color с alpha; совпадение образца учитывает все компоненты.
PresetRemovedСобытие
public event ColorPicker.PresetRemovedEventHandler PresetRemoved;Пользователь удалил образец через UI при разрешённом CanAddSwatches. Прямые ErasePreset/EraseRecentPreset сигнал не испускают.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorЗначение Color с alpha; совпадение образца учитывает все компоненты.
ColorPicker.ColorModeType
| Значение | Описание |
|---|---|
Hsv = 1 | Позволяет редактировать цвет с помощью ползунков «Оттенок/Насыщенность/Значение». |
Linear = 2 | Позволяет редактировать цвет с помощью ползунков Красный/Зеленый/Синий в линейном цветовом пространстве. |
Okhsl = 3 | Позволяет редактировать цвет с помощью ползунков Hue/Saturation/Lightness. OKHSL — это новое цветовое пространство, похожее на HSL, но лучше соответствующее восприятию за счет использования цветового пространства Oklab, которое разработано для простоты использования, при этом хорошо предсказывая воспринимаемую светлоту, цветность и оттенок. Цветовые пространства Okhsv и Okhsl |
Raw = 2 | |
Rgb = 0 | Позволяет редактировать цвет с помощью ползунков Красный/Зеленый/Синий в цветовом пространстве sRGB. |
ColorPicker.PickerShapeType
| Значение | Описание |
|---|---|
HsvRectangle = 0 | HSV Color Цветное пространство модели. |
HsvWheel = 1 | HSV Color Цветовое пространство модели с колесом. |
None = 4 | Форма цветового пространства и кнопка выбора формы скрыты. Невозможно выбрать из всплывающего окна форм. |
OkHlRectangle = 6 | OKHSL Color Модель прямоугольника с постоянным насыщением. |
OkHsRectangle = 5 | OKHSL Color Моделированный прямоугольник с постоянной светозарностью. |
OkhslCircle = 3 | Круговое цветовое пространство модели HSL хорошо Color. |
VhsCircle = 2 | Круговое цветовое пространство HSV Color Model. Используйте Saturation в качестве радиуса. |
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
focused_not_editing_cursor_colorColor | Color - прямоугольник или окружность, нарисованные в том случае, когда часть формы сборщика сфокусирована, но не может быть отредактирована через клавиатуру или джойстику. По умолчанию:Color(1, 1, 1, 0.275) |
center_slider_grabbersint | Переопределяет свойство темы 1 |
h_widthint | Ширина ползунка выбора оттенка. По умолчанию:30 |
label_widthint | Минимальная ширина цветных меток рядом с ползунками. По умолчанию:10 |
marginint | Поле вокруг 4 |
sv_heightint | Высота поля выбора значения насыщенности. По умолчанию:256 |
sv_widthint | Ширина поля выбора значения насыщенности. По умолчанию:256 |
add_presetTexture2D | Значок кнопки «Добавить предустановку». |
bar_arrowTexture2D | Текстура для захвата стрел (Взять стрелу). |
color_copyTexture2D | Значок кнопки, которая копирует цвет в текстовом формате в буфер обмена. |
color_hueTexture2D | Пользовательская текстура для ползунка выбора оттенка справа. |
color_scriptTexture2D | Значок кнопки, переключающей цветной текст на шестнадцатеричный. |
expanded_arrowTexture2D | Значок раскрывающегося меню предустановок цвета в развернутом виде. |
folded_arrowTexture2D | Значок раскрывающегося меню предустановок цвета в сложенном виде. |
menu_optionTexture2D | Значок меню параметров предустановки цвета. |
overbright_indicatorTexture2D | Индикатор, используемый для сигнализации о том, что значение цвета находится за пределами диапазона 0-1. |
picker_cursorTexture2D | Изображение, отображаемое поверх цветового поля/круга (в зависимости от |
picker_cursor_bgTexture2D | Изображение заливки, отображаемое за курсором выбора. |
sample_bgTexture2D | Фоновая панель для окна предварительного просмотра цвета (видима, когда цвет полупрозрачен). |
sample_revertTexture2D | Значок кнопки возврата (виден в середине «старого» цвета, когда он отличается от текущего выбранного цвета). Этот значок модулируется темным цветом, если «старый» цвет достаточно яркий, поэтому значок должен быть ярким, чтобы обеспечить видимость в обоих сценариях. |
screen_pickerTexture2D | Значок кнопки выбора цвета экрана. |
shape_circleTexture2D | Значок для круглой формы инструмента выбора. |
shape_rectTexture2D | Значок для прямоугольных фигур выбора. |
shape_rect_wheelTexture2D | Значок для прямоугольных форм колесного подборщика. |
picker_focus_circleStyleBox |
|
picker_focus_rectangleStyleBox |
|
sample_focusStyleBox |
|