KryptonForm ✓ LCode 已集成 Toolkit
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonForm 是增强型窗体基类,所有使用 Krypton 主题体系的窗体都应继承它而非标准 System.Windows.Forms.Form。它提供 Krypton 主题渲染的标题栏、边框、背景,支持自定义标题栏按钮(ButtonSpec)、状态外观,并确保窗体内所有 Krypton 控件的主题一致性。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
Text | string | 窗体标题栏文字 |
Icon | Icon | 标题栏图标 |
FormBorderStyle | FormBorderStyle | 窗体边框样式 |
StartPosition | FormStartPosition | 窗体初始位置 |
ButtonSpecs | 集合 | 标题栏附加按钮集合(ButtonSpec) |
StateCommon.Back.Color1 | Color | 窗体客户区背景色 |
StateCommon.Header.Back.Color1 | Color | 标题栏背景色 |
StateCommon.Header.Content.ShortText.Color1 | Color | 标题栏文字颜色 |
StateCommon.Border.Color1 | Color | 窗体边框颜色 |
StateActive.Header.Back.Color1 | Color | 激活状态标题栏背景色 |
StateInactive.Header.Back.Color1 | Color | 非激活状态标题栏背景色 |
快速上手
基本用法(继承 KryptonForm)
using Krypton.Toolkit;
// 所有 Krypton 窗体必须继承 KryptonForm
public class MainForm : KryptonForm
{
public MainForm()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.Text = "我的 Krypton 应用";
this.Size = new Size(800, 600);
this.StartPosition = FormStartPosition.CenterScreen;
// 添加 Krypton 控件
var btnOk = new KryptonButton();
btnOk.Values.Text = "确定";
btnOk.Location = new Point(20, 20);
this.Controls.Add(btnOk);
}
}
// 程序入口
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
设计器中使用
// 在 LCode 设计器中:
// 1. 新建窗体时选择继承 KryptonForm
// 2. 或手动修改 partial class 声明:
public partial class MyDialog : KryptonForm // 而非 Form
{
public MyDialog()
{
InitializeComponent();
}
}
进阶用法
自定义标题栏按钮(ButtonSpec)
public class MainForm : KryptonForm
{
public MainForm()
{
this.Text = "带自定义按钮的窗体";
// 在标题栏添加帮助按钮
var specHelp = new ButtonSpecAny();
specHelp.Type = PaletteButtonSpecStyle.Context;
specHelp.Text = "?";
specHelp.ToolTipBody = "打开帮助文档";
specHelp.Click += (s, e) => ShowHelp();
this.ButtonSpecs.Add(specHelp);
// 在标题栏添加设置按钮
var specSettings = new ButtonSpecAny();
specSettings.Type = PaletteButtonSpecStyle.Context;
specSettings.Image = Properties.Resources.icon_settings;
specSettings.ToolTipBody = "打开设置";
specSettings.Click += (s, e) => ShowSettings();
this.ButtonSpecs.Add(specSettings);
}
}
自定义窗体外观
public class ThemedForm : KryptonForm
{
public ThemedForm()
{
// 自定义客户区背景
this.StateCommon.Back.Color1 = Color.FromArgb(250, 250, 248);
// 自定义标题栏
this.StateActive.Header.Back.Color1 = Color.FromArgb(15, 118, 110);
this.StateActive.Header.Back.Color2 = Color.FromArgb(13, 148, 136);
this.StateActive.Header.Content.ShortText.Color1 = Color.White;
// 非激活时标题栏变暗
this.StateInactive.Header.Back.Color1 = Color.FromArgb(100, 116, 139);
this.StateInactive.Header.Back.Color2 = Color.FromArgb(148, 163, 184);
// 自定义边框
this.StateCommon.Border.Color1 = Color.FromArgb(15, 118, 110);
}
}
提示:使用 Krypton 控件体系时,所有窗体都应继承 KryptonForm。如果继承标准 Form,窗体标题栏和边框将不会跟随 Krypton 主题渲染,导致视觉不一致。
对应示例项目
📁 Source/Krypton Toolkit Examples/KryptonForm Examples/
包含:基本窗体、ButtonSpec 标题栏按钮、自定义外观、多主题切换演示。