简介

KryptonColorButton 是颜色选择按钮,点击后弹出内置的颜色选择面板(包含主题色、标准色、自定义颜色区域)。用户选择颜色后通过 SelectedColor 属性获取结果。典型用途包括字体颜色、背景色、高亮色设置,类似 Office 工具栏中的字体颜色按钮。

KryptonColorButton 示例截图
KryptonColorButton 及其弹出的颜色选择面板

常用属性

属性类型说明
Values.Textstring按钮显示的文字
Values.ImageImage按钮左侧图标
SelectedColorColor当前选中的颜色
RecentColorsColor[]最近使用的颜色列表
MaxRecentColorsint最近颜色列表的最大数量
VisibleThemesbool是否显示主题颜色区域
VisibleStandardColorsbool是否显示标准颜色区域
VisibleNoColorbool是否显示"无颜色"选项
VisibleMoreColorsbool是否显示"其他颜色"按钮(弹出系统颜色对话框)
SchemeThemesColorSchemeThemes主题颜色的配色方案
Splitterbool是否显示下拉箭头(分体模式)

快速上手

基本用法(字体颜色选择)

using Krypton.Toolkit;

// 创建颜色按钮
var btnFontColor = new KryptonColorButton();
btnFontColor.Values.Text = "字体颜色";
btnFontColor.Values.Image = Properties.Resources.icon_fontcolor;
btnFontColor.SelectedColor = Color.Red;
btnFontColor.Location = new Point(20, 20);
btnFontColor.Size = new Size(120, 32);

// 用户选择颜色后应用
btnFontColor.SelectedColorChanged += (s, e) =>
{
    richTextBox.SelectionColor = btnFontColor.SelectedColor;
};

this.Controls.Add(btnFontColor);

分体模式(点击按钮直接应用,点箭头弹出面板)

var btnHighlight = new KryptonColorButton();
btnHighlight.Values.Text = "高亮";
btnHighlight.Splitter = true;  // 按钮和箭头分为两个区域
btnHighlight.SelectedColor = Color.Yellow;

// 点击按钮主体:直接应用上次颜色
btnHighlight.Click += (s, e) =>
{
    richTextBox.SelectionBackColor = btnHighlight.SelectedColor;
};

// 点击箭头:自动弹出颜色面板(无需额外代码)

进阶用法

自定义颜色面板布局

// 简化面板:只显示标准色和"其他颜色"
var btnSimple = new KryptonColorButton();
btnSimple.Values.Text = "背景色";
btnSimple.VisibleThemes = false;        // 隐藏主题色区域
btnSimple.VisibleNoColor = false;       // 隐藏"无颜色"
btnSimple.VisibleStandardColors = true; // 保留标准色
btnSimple.VisibleMoreColors = true;     // 保留"其他颜色"入口
btnSimple.MaxRecentColors = 8;          // 最多记录 8 个最近颜色

与 KryptonRibbon 集成

// 在 Ribbon 选项卡中添加颜色按钮
var ribbonColorBtn = new RibbonColorButton();
ribbonColorBtn.TextLine1 = "字体颜色";
ribbonColorBtn.ImageSmall = Properties.Resources.icon_fontcolor_16;
ribbonColorBtn.SelectedColor = Color.Black;

ribbonColorBtn.SelectedColorChanged += (s, e) =>
{
    ApplyFontColor(ribbonColorBtn.SelectedColor);
};

ribbonGroup.Items.Add(ribbonColorBtn);
提示:颜色面板中的"主题颜色"会跟随 KryptonManager 的当前调色板自动变化。如果只需要固定颜色列表,可将 VisibleThemes 设为 False。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonColorButton Examples/

包含:基本颜色选择、分体模式、自定义面板布局、Ribbon 集成演示。

相关控件