简介

KryptonCommandLinkButton 是命令链接按钮,模仿 Windows 7 及以后系统对话框中的大按钮风格。它同时显示标题(Heading)和描述文字(ExtraText),左侧带有箭头图标,适合用于向导页面、设置入口、功能导航等需要向用户解释操作含义的场景。

KryptonCommandLinkButton 示例截图
KryptonCommandLinkButton 的 Windows 7 风格大按钮外观

常用属性

属性类型说明
Values.Headingstring主标题文字(大号加粗显示)
Values.ExtraTextstring描述文字(显示在标题下方,解释操作)
Values.ImageImage自定义左侧图标(默认显示箭头)
StateCommon.Content.ShortText.FontFont标题字体
StateCommon.Content.LongText.FontFont描述文字字体
StateNormal.Back.Color1Color正常状态背景色
StateTracking.Back.Color1Color悬停时背景色
StatePressed.Back.Color1Color按下时背景色
KryptonCommandKryptonCommand绑定的命令对象
ButtonStyleButtonStyle按钮视觉风格

快速上手

基本用法(设置向导入口)

using Krypton.Toolkit;

// 创建命令链接按钮
var btnNetwork = new KryptonCommandLinkButton();
btnNetwork.Values.Heading = "连接网络";
btnNetwork.Values.ExtraText = "设置无线网络或以太网连接,配置代理服务器。";
btnNetwork.Location = new Point(30, 30);
btnNetwork.Size = new Size(400, 64);

btnNetwork.Click += (s, e) => ShowNetworkSettings();

this.Controls.Add(btnNetwork);

多个命令链接按钮组成导航列表

var options = new[]
{
    ("账户管理", "修改密码、绑定邮箱、管理登录设备"),
    ("隐私设置", "控制数据收集、广告偏好、活动历史记录"),
    ("系统更新", "检查并安装最新的系统补丁和功能更新"),
    ("备份还原", "将当前配置备份到云端或从备份恢复")
};

int y = 20;
foreach (var (title, desc) in options)
{
    var btn = new KryptonCommandLinkButton();
    btn.Values.Heading = title;
    btn.Values.ExtraText = desc;
    btn.Location = new Point(30, y);
    btn.Size = new Size(420, 60);
    btn.Click += (s, e) => NavigateTo(title);
    this.Controls.Add(btn);
    y += 70;
}

进阶用法

自定义外观(翡翠绿主题风格)

// 标题使用较大字号
btnNetwork.StateCommon.Content.ShortText.Font =
    new Font("Microsoft YaHei UI", 12f, FontStyle.Bold);

// 描述文字使用灰色小字
btnNetwork.StateCommon.Content.LongText.Font =
    new Font("Microsoft YaHei UI", 9f);
btnNetwork.StateCommon.Content.LongText.Color1 = Color.FromArgb(107, 114, 128);

// 悬停时显示淡绿背景
btnNetwork.StateTracking.Back.Color1 = Color.FromArgb(240, 253, 250);
btnNetwork.StateTracking.Border.Color1 = Color.FromArgb(15, 118, 110);

禁用状态与条件控制

// 未联网时禁用更新入口
var btnUpdate = new KryptonCommandLinkButton();
btnUpdate.Values.Heading = "检查更新";
btnUpdate.Values.ExtraText = "当前版本:v2.1.0";
btnUpdate.Enabled = IsNetworkAvailable();

// 网络状态变化时更新
NetworkChange.NetworkAvailabilityChanged += (s, e) =>
{
    btnUpdate.Enabled = e.IsAvailable;
    btnUpdate.Values.ExtraText = e.IsAvailable
        ? "当前版本:v2.1.0(点击检查更新)"
        : "网络不可用,无法检查更新";
};
提示:KryptonCommandLinkButton 的 Values.Heading 对应主标题,Values.ExtraText 对应描述文字。与普通 KryptonButton 的 Values.Text 不同,注意属性名称的区别。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonCommandLinkButton Examples/

包含:基本命令链接、多按钮导航列表、自定义外观演示。

相关控件