KryptonColorDialog ✓ LCode 已集成 对话框
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonColorDialog 是增强型颜色选择对话框,替代标准 System.Windows.Forms.ColorDialog。它自动跟随 Krypton 主题渲染,提供标准色板、自定义颜色、RGB/HSL 调节等功能,用户选择的颜色通过 Color 属性获取。常用于主题配置、绘图工具、文本编辑器等需要颜色选择的场景。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
Color | Color | 用户选择的颜色(对话框关闭后读取) |
FullOpen | bool | 是否默认展开自定义颜色区域 |
AllowFullOpen | bool | 是否允许用户展开自定义颜色区域 |
AnyColor | bool | 是否允许选择任意颜色(含非纯色) |
SolidColorOnly | bool | 是否仅允许选择纯色 |
CustomColors | int[] | 自定义颜色数组(最多 16 个) |
ShowHelp | bool | 是否显示帮助按钮 |
快速上手
基本用法
using Krypton.Toolkit;
// 创建颜色对话框
var colorDialog = new KryptonColorDialog();
colorDialog.Color = btnBackground.StateCommon.Back.Color1; // 初始颜色
colorDialog.FullOpen = true; // 展开自定义区域
if (colorDialog.ShowDialog(this) == DialogResult.OK)
{
// 应用用户选择的颜色
btnBackground.StateCommon.Back.Color1 = colorDialog.Color;
lblPreview.StateCommon.ShortText.Color1 = colorDialog.Color;
}
选择文字颜色
var colorDialog = new KryptonColorDialog();
colorDialog.AnyColor = true;
colorDialog.SolidColorOnly = true;
if (colorDialog.ShowDialog() == DialogResult.OK)
{
richTextBox.SelectionColor = colorDialog.Color;
}
进阶用法
预设自定义颜色
// 预设 16 个自定义颜色(ARGB 整数值)
var colorDialog = new KryptonColorDialog();
colorDialog.CustomColors = new int[]
{
ColorTranslator.ToOle(Color.FromArgb(15, 118, 110)), // 翡翠绿
ColorTranslator.ToOle(Color.FromArgb(13, 148, 136)),
ColorTranslator.ToOle(Color.FromArgb(20, 184, 166)),
ColorTranslator.ToOle(Color.FromArgb(45, 212, 191)),
ColorTranslator.ToOle(Color.FromArgb(250, 250, 248)), // 暖象牙
ColorTranslator.ToOle(Color.FromArgb(245, 245, 244)),
ColorTranslator.ToOle(Color.FromArgb(30, 41, 59)), // 深色
ColorTranslator.ToOle(Color.FromArgb(51, 65, 85)),
ColorTranslator.ToOle(Color.FromArgb(239, 68, 68)), // 红色系
ColorTranslator.ToOle(Color.FromArgb(249, 115, 22)), // 橙色系
ColorTranslator.ToOle(Color.FromArgb(234, 179, 8)), // 黄色系
ColorTranslator.ToOle(Color.FromArgb(59, 130, 246)), // 蓝色系
ColorTranslator.ToOle(Color.FromArgb(139, 92, 246)), // 紫色系
ColorTranslator.ToOle(Color.FromArgb(236, 72, 153)), // 粉色系
ColorTranslator.ToOle(Color.FromArgb(107, 114, 128)), // 灰色系
ColorTranslator.ToOle(Color.FromArgb(255, 255, 255)) // 白色
};
colorDialog.FullOpen = true;
if (colorDialog.ShowDialog(this) == DialogResult.OK)
{
ApplyThemeColor(colorDialog.Color);
}
配合 KryptonColorButton 使用
// 颜色按钮点击时弹出颜色对话框
var btnColor = new KryptonColorButton();
btnColor.Values.Text = "选择颜色";
btnColor.SelectedColor = Color.Teal;
btnColor.Click += (s, e) =>
{
var dlg = new KryptonColorDialog();
dlg.Color = btnColor.SelectedColor;
dlg.FullOpen = true;
if (dlg.ShowDialog(this) == DialogResult.OK)
{
btnColor.SelectedColor = dlg.Color;
panelPreview.StateCommon.Back.Color1 = dlg.Color;
}
};
提示:
CustomColors 属性使用 OLE 颜色整数(通过 ColorTranslator.ToOle() 转换)。用户自定义的颜色会在下次打开对话框时自动保留在自定义区域中。
对应示例项目
📁 Source/Krypton Toolkit Examples/KryptonColorDialog Examples/
包含:基本颜色选择、自定义颜色预设、配合 ColorButton 使用演示。