简介

KryptonToolStrip 是增强型工具栏控件,替代标准 System.Windows.Forms.ToolStrip。它自动跟随 Krypton 主题渲染,通常停靠在窗体顶部,承载常用操作的快捷按钮。支持按钮、下拉按钮、复选按钮、文本框、组合框、标签、分隔线等多种子项,并可绑定 KryptonCommand 实现命令统一管理。

KryptonToolStrip 示例截图
KryptonToolStrip 工具栏效果

常用属性

属性类型说明
Items集合工具栏子项集合(Button / DropDown / ComboBox / TextBox 等)
DockDockStyle停靠方式(默认 Top)
GripStyleToolStripGripStyle是否显示拖拽手柄(Hidden / Visible)
ImageScalingSizeSize工具栏图标的统一缩放尺寸
LayoutStyleToolStripLayoutStyle子项布局方式(水平/垂直/流式)
RenderModeToolStripRenderMode渲染模式(通常由 Krypton 主题接管)
StateCommon.Back.Color1Color工具栏背景色
StateCommon.Back.Color2Color工具栏渐变次颜色
StateCommon.Border.Color1Color工具栏边框颜色
FontFont工具栏文字字体

快速上手

基本工具栏

using Krypton.Toolkit;

// 创建工具栏
var toolStrip = new KryptonToolStrip();
toolStrip.Dock = DockStyle.Top;
toolStrip.GripStyle = ToolStripGripStyle.Hidden;
toolStrip.ImageScalingSize = new Size(20, 20);

// 添加按钮
var btnNew = new ToolStripButton("新建");
btnNew.Image = Properties.Resources.icon_new;
btnNew.ToolTipText = "新建文件 (Ctrl+N)";
btnNew.Click += (s, e) => NewFile();

var btnOpen = new ToolStripButton("打开");
btnOpen.Image = Properties.Resources.icon_open;
btnOpen.ToolTipText = "打开文件 (Ctrl+O)";
btnOpen.Click += (s, e) => OpenFile();

var btnSave = new ToolStripButton("保存");
btnSave.Image = Properties.Resources.icon_save;
btnSave.ToolTipText = "保存 (Ctrl+S)";
btnSave.Click += (s, e) => SaveFile();

toolStrip.Items.Add(btnNew);
toolStrip.Items.Add(btnOpen);
toolStrip.Items.Add(btnSave);
toolStrip.Items.Add(new ToolStripSeparator());

this.Controls.Add(toolStrip);

带下拉和组合框的工具栏

// 下拉按钮
var btnExport = new ToolStripDropDownButton("导出");
btnExport.Image = Properties.Resources.icon_export;
btnExport.DropDownItems.Add("导出为 PDF");
btnExport.DropDownItems.Add("导出为 Excel");
btnExport.DropDownItems.Add("导出为图片");

// 组合框(如字体选择)
var cmbFont = new ToolStripComboBox();
cmbFont.Items.AddRange(new object[] { "宋体", "微软雅黑", "Consolas", "Arial" });
cmbFont.SelectedIndex = 0;
cmbFont.Width = 120;

toolStrip.Items.Add(btnExport);
toolStrip.Items.Add(new ToolStripSeparator());
toolStrip.Items.Add(new ToolStripLabel("字体:"));
toolStrip.Items.Add(cmbFont);

进阶用法

绑定 KryptonCommand 统一管理

// 创建命令(菜单、工具栏、快捷键共享)
var cmdSave = new KryptonCommand();
cmdSave.Text = "保存";
cmdSave.Image = Properties.Resources.icon_save;
cmdSave.Click += (s, e) => SaveFile();

// 工具栏按钮绑定命令
var btnSave = new ToolStripButton();
btnSave.KryptonCommand = cmdSave;

toolStrip.Items.Add(btnSave);

// 禁用命令时,所有绑定的控件同步禁用
cmdSave.Enabled = false;  // 工具栏按钮和菜单项同时变灰

多行工具栏与溢出

// 允许工具栏溢出到下一行
toolStrip.LayoutStyle = ToolStripLayoutStyle.HorizontalStackWithOverflow;

// 或允许溢出到下拉菜单
toolStrip.LayoutStyle = ToolStripLayoutStyle.Flow;

// 设置特定项的溢出行为
btnNew.Overflow = ToolStripItemOverflow.Never;    // 永不溢出
btnExport.Overflow = ToolStripItemOverflow.AsNeeded; // 按需溢出
提示:KryptonToolStrip 中的子项仍使用标准 ToolStripButtonToolStripComboBox 等类型,但渲染由 Krypton 主题统一接管。设置 GripStyle = Hidden 可获得更简洁的外观。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonToolStrip Examples/

包含:基本工具栏、下拉按钮、命令绑定、溢出布局演示。

相关控件