简介

KryptonToggleSwitch 是开关切换控件,外观为现代 UI 中常见的滑动开关(类似手机设置中的开关)。它提供直观的"开 / 关"两态交互,比传统复选框更适合表示功能启用 / 禁用的场景。支持自定义开 / 关状态的文字、颜色和滑块外观。

KryptonToggleSwitch 示例截图
KryptonToggleSwitch 的开与关两种状态

常用属性

属性类型说明
Checkedbool开关状态(true = 开,false = 关)
ToggleSizeint滑块大小
OnTextstring开启状态显示的文字(如"开")
OffTextstring关闭状态显示的文字(如"关")
ShowOnOffTextbool是否显示开 / 关文字
StateCommon.Back.Color1Color轨道背景色
StateCheckedNormal.Back.Color1Color开启状态轨道颜色
StateCommon.Content.ShortText.FontFont开 / 关文字字体
Enabledbool是否可用
AutoSizebool是否自动调整大小

快速上手

基本用法(功能开关)

using Krypton.Toolkit;

// 创建开关
var tglNotify = new KryptonToggleSwitch();
tglNotify.Checked = true;
tglNotify.Location = new Point(20, 20);
tglNotify.Size = new Size(60, 24);

// 配套文字标签
var lblNotify = new KryptonLabel();
lblNotify.Values.Text = "接收通知";
lblNotify.Location = new Point(90, 22);

// 开关状态变化
tglNotify.CheckedChanged += (s, e) =>
{
    Settings.ReceiveNotifications = tglNotify.Checked;
    Settings.Save();
};

this.Controls.Add(tglNotify);
this.Controls.Add(lblNotify);

带开 / 关文字的开关

var tglWifi = new KryptonToggleSwitch();
tglWifi.ShowOnOffText = true;
tglWifi.OnText = "开";
tglWifi.OffText = "关";
tglWifi.Checked = true;
tglWifi.Size = new Size(80, 28);

进阶用法

自定义颜色(翡翠绿主题)

// 开启时使用翡翠绿
tglWifi.StateCheckedNormal.Back.Color1 = Color.FromArgb(15, 118, 110);

// 关闭时使用灰色
tglWifi.StateNormal.Back.Color1 = Color.FromArgb(209, 213, 219);

// 悬停时稍微加深
tglWifi.StateCheckedTracking.Back.Color1 = Color.FromArgb(13, 148, 136);
tglWifi.StateTracking.Back.Color1 = Color.FromArgb(185, 189, 197);

设置页多开关布局

// 批量创建设置项开关
var settings = new (string Name, bool Default)[]
{
    ("自动更新", true),
    ("开机启动", false),
    ("深色模式", false),
    ("声音提示", true)
};

int y = 20;
foreach (var (name, def) in settings)
{
    var lbl = new KryptonLabel();
    lbl.Values.Text = name;
    lbl.Location = new Point(20, y + 2);

    var tgl = new KryptonToggleSwitch();
    tgl.Checked = def;
    tgl.Location = new Point(200, y);
    tgl.Size = new Size(56, 22);
    tgl.Tag = name;
    tgl.CheckedChanged += (s, e) =>
    {
        var key = (string)((KryptonToggleSwitch)s).Tag;
        SaveSetting(key, ((KryptonToggleSwitch)s).Checked);
    };

    this.Controls.Add(lbl);
    this.Controls.Add(tgl);
    y += 40;
}
提示:KryptonToggleSwitch 语义上等同于 KryptonCheckBox,但视觉上更现代。对于"是否启用某功能"的二元设置优先使用开关;对于表单中的多选勾选项则使用复选框。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonToggleSwitch Examples/

包含:基本开关、开 / 关文字、自定义颜色、设置页布局演示。

相关控件