KryptonManager ✓ LCode 已集成 Toolkit
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonManager 是全局主题管理器组件(非可视控件),负责管理整个应用程序的 Krypton 主题(Palette)。它通常从工具箱拖放到窗体设计器的组件栏中,通过修改 GlobalPaletteMode 属性即可一键切换所有 Krypton 控件的主题风格,支持内置主题和自定义调色板。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
GlobalPaletteMode | PaletteMode | 全局主题模式(Office2010Blue / ProfessionalSystem 等) |
GlobalPalette | IPalette | 自定义调色板对象(优先于 GlobalPaletteMode) |
ToolkitPalette | IPalette | Toolkit 控件专用调色板 |
RibbonPalette | IPalette | Ribbon 控件专用调色板 |
NavigatorPalette | IPalette | Navigator 控件专用调色板 |
DockingPalette | IPalette | Docking 控件专用调色板 |
WorkspacePalette | IPalette | Workspace 控件专用调色板 |
AllowFormChrome | bool | 是否允许窗体使用 Aero 玻璃边框 |
RenderChrome | bool | 是否渲染窗体 Chrome 效果 |
快速上手
设计器中使用
// 在 LCode 设计器中:
// 1. 从工具箱「LCode Components」拖放 KryptonManager 到窗体
// 2. 在属性面板中设置 GlobalPaletteMode 选择主题
// 3. 所有 Krypton 控件自动跟随主题变化
// 等效代码:
public partial class MainForm : KryptonForm
{
private KryptonManager kryptonManager1;
private void InitializeComponent()
{
this.kryptonManager1 = new KryptonManager();
// 设置全局主题为 Office 2010 蓝色
this.kryptonManager1.GlobalPaletteMode = PaletteMode.Office2010Blue;
}
}
运行时切换主题
// 通过下拉菜单让用户选择主题
var cmbTheme = new KryptonComboBox();
cmbTheme.Items.AddRange(new object[]
{
"Office 2010 Blue",
"Office 2010 Silver",
"Office 2010 Black",
"Professional System",
"Sparkle Blue",
"Sparkle Orange",
"Sparkle Purple"
});
cmbTheme.SelectedIndex = 0;
cmbTheme.SelectedIndexChanged += (s, e) =>
{
switch (cmbTheme.SelectedIndex)
{
case 0: kryptonManager1.GlobalPaletteMode = PaletteMode.Office2010Blue; break;
case 1: kryptonManager1.GlobalPaletteMode = PaletteMode.Office2010Silver; break;
case 2: kryptonManager1.GlobalPaletteMode = PaletteMode.Office2010Black; break;
case 3: kryptonManager1.GlobalPaletteMode = PaletteMode.ProfessionalSystem; break;
case 4: kryptonManager1.GlobalPaletteMode = PaletteMode.SparkleBlue; break;
case 5: kryptonManager1.GlobalPaletteMode = PaletteMode.SparkleOrange; break;
case 6: kryptonManager1.GlobalPaletteMode = PaletteMode.SparklePurple; break;
}
};
进阶用法
使用自定义调色板
// 加载自定义 XML 调色板文件
var customPalette = new KryptonPalette();
customPalette.Import("MyTheme.xml");
// 应用自定义调色板
kryptonManager1.GlobalPalette = customPalette;
// 保存当前调色板到文件
customPalette.Export("MyTheme.xml");
记忆用户主题偏好
// 启动时恢复上次主题
private void MainForm_Load(object sender, EventArgs e)
{
var savedTheme = Properties.Settings.Default.ThemeMode;
if (Enum.TryParse<PaletteMode>(savedTheme, out var mode))
{
kryptonManager1.GlobalPaletteMode = mode;
}
}
// 切换主题时保存偏好
private void OnThemeChanged(PaletteMode mode)
{
kryptonManager1.GlobalPaletteMode = mode;
Properties.Settings.Default.ThemeMode = mode.ToString();
Properties.Settings.Default.Save();
}
提示:KryptonManager 是非可视组件,运行时不可见。通常只需在启动窗体中放置一个即可管理全局主题。如果不同模块需要不同主题,可分别设置
ToolkitPalette、RibbonPalette 等属性。
对应示例项目
📁 Source/Krypton Toolkit Examples/KryptonManager Examples/
包含:主题切换演示、自定义调色板导入导出、多组件独立主题。