KryptonToggleSwitch ✓ LCode 已集成 Toolkit
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonToggleSwitch 是开关切换控件,外观为现代 UI 中常见的滑动开关(类似手机设置中的开关)。它提供直观的"开 / 关"两态交互,比传统复选框更适合表示功能启用 / 禁用的场景。支持自定义开 / 关状态的文字、颜色和滑块外观。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
Checked | bool | 开关状态(true = 开,false = 关) |
ToggleSize | int | 滑块大小 |
OnText | string | 开启状态显示的文字(如"开") |
OffText | string | 关闭状态显示的文字(如"关") |
ShowOnOffText | bool | 是否显示开 / 关文字 |
StateCommon.Back.Color1 | Color | 轨道背景色 |
StateCheckedNormal.Back.Color1 | Color | 开启状态轨道颜色 |
StateCommon.Content.ShortText.Font | Font | 开 / 关文字字体 |
Enabled | bool | 是否可用 |
AutoSize | bool | 是否自动调整大小 |
快速上手
基本用法(功能开关)
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/
包含:基本开关、开 / 关文字、自定义颜色、设置页布局演示。