KryptonToolStrip ✓ LCode 已集成 Toolkit
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonToolStrip 是增强型工具栏控件,替代标准 System.Windows.Forms.ToolStrip。它自动跟随 Krypton 主题渲染,通常停靠在窗体顶部,承载常用操作的快捷按钮。支持按钮、下拉按钮、复选按钮、文本框、组合框、标签、分隔线等多种子项,并可绑定 KryptonCommand 实现命令统一管理。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
Items | 集合 | 工具栏子项集合(Button / DropDown / ComboBox / TextBox 等) |
Dock | DockStyle | 停靠方式(默认 Top) |
GripStyle | ToolStripGripStyle | 是否显示拖拽手柄(Hidden / Visible) |
ImageScalingSize | Size | 工具栏图标的统一缩放尺寸 |
LayoutStyle | ToolStripLayoutStyle | 子项布局方式(水平/垂直/流式) |
RenderMode | ToolStripRenderMode | 渲染模式(通常由 Krypton 主题接管) |
StateCommon.Back.Color1 | Color | 工具栏背景色 |
StateCommon.Back.Color2 | Color | 工具栏渐变次颜色 |
StateCommon.Border.Color1 | Color | 工具栏边框颜色 |
Font | Font | 工具栏文字字体 |
快速上手
基本工具栏
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 中的子项仍使用标准
ToolStripButton、ToolStripComboBox 等类型,但渲染由 Krypton 主题统一接管。设置 GripStyle = Hidden 可获得更简洁的外观。
对应示例项目
📁 Source/Krypton Toolkit Examples/KryptonToolStrip Examples/
包含:基本工具栏、下拉按钮、命令绑定、溢出布局演示。