简介

KryptonSplitContainer 是增强型分割容器控件,替代标准 System.Windows.Forms.SplitContainer。它把可用区域分为两个面板(Panel1 / Panel2),中间由可拖动的分割条隔开,用户可拖动分割条调整两侧比例;分割条与面板背景均跟随 Krypton 主题渲染,支持水平/垂直方向、固定面板、最小尺寸限制等。

KryptonSplitContainer 示例截图
KryptonSplitContainer 左侧导航 + 右侧内容的经典布局

常用属性

属性类型说明
OrientationOrientation分割方向(Vertical 左右分 / Horizontal 上下分)
SplitterDistanceint分割条距容器边缘的距离(像素)
SplitterWidthint分割条宽度
FixedPanelFixedPanel缩放时保持固定的面板(None / Panel1 / Panel2)
IsSplitterFixedbool是否锁定分割条(禁止拖动)
Panel1MinSizeintPanel1 的最小尺寸
Panel2MinSizeintPanel2 的最小尺寸
Panel1SplitterPanel第一个面板(承载子控件)
Panel2SplitterPanel第二个面板(承载子控件)
Panel1Collapsedbool是否折叠 Panel1(Panel2 占满)
Panel2Collapsedbool是否折叠 Panel2(Panel1 占满)
ContainerBackStylePaletteBackStyle面板背景预设风格

快速上手

左导航 + 右内容布局

using Krypton.Toolkit;

// 创建分割容器并占满窗体
var split = new KryptonSplitContainer();
split.Dock = DockStyle.Fill;
split.Orientation = Orientation.Vertical;  // 左右分割
split.SplitterDistance = 220;              // 左侧宽度
split.FixedPanel = FixedPanel.Panel1;      // 缩放时左侧宽度不变

// 左侧放树形导航
var tree = new KryptonTreeView();
tree.Dock = DockStyle.Fill;
split.Panel1.Controls.Add(tree);

// 右侧放内容面板
var panelContent = new KryptonPanel();
panelContent.Dock = DockStyle.Fill;
split.Panel2.Controls.Add(panelContent);

this.Controls.Add(split);

上下分割(列表 + 详情)

split.Orientation = Orientation.Horizontal;  // 上下分割
split.SplitterDistance = 180;                // 上方高度
split.Panel1MinSize = 100;
split.Panel2MinSize = 120;

进阶用法

分割条拖动事件

// 拖动过程中持续触发
split.SplitterMoved += (s, e) =>
    Console.WriteLine($"分割位置:{split.SplitterDistance}");

// 锁定 / 解锁分割条
split.IsSplitterFixed = true;   // 禁止拖动
split.IsSplitterFixed = false;  // 恢复拖动

折叠某一侧面板

// 折叠左侧(例如隐藏导航栏),右侧占满
split.Panel1Collapsed = true;

// 恢复显示
split.Panel1Collapsed = false;
提示:嵌套 KryptonSplitContainer 可构建多区域布局(如 Outlook 式「导航 / 列表 / 预览」三栏),将第二个 SplitContainer 放入第一个的 Panel2 即可。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonSplitContainer Examples/

包含:水平/垂直分割、固定面板、嵌套分割、面板折叠演示。

相关控件