简介

KryptonCheckButton 是可选中按钮控件,功能类似 WPF 的 ToggleButton。点击后保持按下(Checked)状态,再次点击取消选中。常用于工具栏切换按钮、视图模式切换、格式开关(加粗/斜体)等需要持久化选中态的场景。支持与 KryptonCheckSet 配合实现单选组行为。

KryptonCheckButton 示例截图
KryptonCheckButton 选中与未选中状态对比

常用属性

属性类型说明
Values.Textstring按钮显示的文字
Values.ImageImage按钮左侧图标
Checkedbool是否处于选中(按下)状态
ButtonStyleButtonStyle按钮视觉风格(Default / Gallery / NavigatorMini 等)
KryptonCommandKryptonCommand绑定的命令对象
StateCheckedNormal.Back.Color1Color选中状态正常背景色
StateCheckedTracking.Back.Color1Color选中状态悬停背景色
StateCommon.Content.ShortText.FontFont文字字体
AutoCheckbool点击时是否自动切换 Checked 状态
ButtonSpecs集合附加的 ButtonSpec 按钮集合

快速上手

基本用法(切换按钮)

using Krypton.Toolkit;

// 创建一个"加粗"切换按钮
var btnBold = new KryptonCheckButton();
btnBold.Values.Text = "B";
btnBold.Values.Image = Properties.Resources.icon_bold;
btnBold.Location = new Point(20, 20);
btnBold.Size = new Size(36, 32);

// 选中状态变化事件
btnBold.CheckedChanged += (s, e) =>
{
    richTextBox.SelectionFont = new Font(
        richTextBox.SelectionFont,
        btnBold.Checked ? FontStyle.Bold : FontStyle.Regular);
};

this.Controls.Add(btnBold);

配合 KryptonCheckSet 实现单选组

// 创建多个 CheckButton
var btnList = new KryptonCheckButton { Values = { Text = "列表视图" } };
var btnGrid = new KryptonCheckButton { Values = { Text = "网格视图" } };
var btnCard = new KryptonCheckButton { Values = { Text = "卡片视图" } };

// 加入 CheckSet,同组内只能选中一个
var checkSet = new KryptonCheckSet();
checkSet.CheckButtons.Add(btnList);
checkSet.CheckButtons.Add(btnGrid);
checkSet.CheckButtons.Add(btnCard);

// 默认选中第一个
btnList.Checked = true;

checkSet.CheckedButtonChanged += (s, e) =>
{
    var selected = checkSet.CheckedButton.Values.Text;
    SwitchView(selected);
};

进阶用法

自定义选中状态外观

// 选中时使用翡翠绿背景突出显示
btnBold.StateCheckedNormal.Back.Color1 = Color.FromArgb(204, 251, 241);
btnBold.StateCheckedNormal.Border.Color1 = Color.FromArgb(15, 118, 110);
btnBold.StateCheckedNormal.Content.ShortText.Color1 = Color.FromArgb(15, 118, 110);

// 选中 + 悬停时稍微加深
btnBold.StateCheckedTracking.Back.Color1 = Color.FromArgb(153, 246, 228);

工具栏视图切换(典型场景)

// 模拟 Office 工具栏中的视图切换按钮组
var views = new[] { "大图标", "小图标", "详细信息" };
var checkSet = new KryptonCheckSet();
int x = 10;

foreach (var name in views)
{
    var btn = new KryptonCheckButton();
    btn.Values.Text = name;
    btn.ButtonStyle = ButtonStyle.NavigatorMini;
    btn.Location = new Point(x, 10);
    btn.Size = new Size(80, 28);
    checkSet.CheckButtons.Add(btn);
    this.Controls.Add(btn);
    x += 90;
}

checkSet.CheckButtons[0].Checked = true;
提示:在 LCode 设计器中,从工具箱拖放 KryptonCheckButton 后,可在属性面板设置 Checked 为 True 使其默认选中。多个 CheckButton 可通过 KryptonCheckSet 组件关联实现互斥选择。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonCheckButton Examples/

包含:基本切换按钮、CheckSet 单选组、工具栏视图切换演示。

相关控件