KryptonNavigator ✓ LCode 已集成 Navigator
命名空间:Krypton.Navigator · 程序集:Krypton.Navigator.dll
简介
KryptonNavigator 是一个功能强大的导航容器控件,用于在多个页面(KryptonPage)之间切换。它支持多种显示模式,包括选项卡(Tab)、Outlook 风格、堆叠按钮(Stack)、HeaderGroup 等,可满足不同 UI 布局需求。每个页面可包含独立的控件集合,用户通过点击标签、按钮或列表项来切换当前显示的页面。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
NavigatorMode | NavigatorMode | 导航器显示模式(Tab / Bar / Stack / HeaderGroup / Panel / Outlook 等) |
Pages | KryptonPageCollection | 包含的所有页面集合 |
SelectedPage | KryptonPage | 当前选中的页面 |
SelectedIndex | int | 当前选中页面的索引 |
Bar.Orientation | VisualOrientation | Bar/Tab 模式下标签的方向(Top / Bottom / Left / Right) |
Bar.ItemOrientation | ButtonOrientation | 标签项内文字的排列方向 |
Bar.BarMultiline | BarMultiline | 标签是否允许多行显示 |
Stack.Orientation | VisualOrientation | Stack 模式下按钮的堆叠方向 |
Stack.StackAlignment | RelativePositionAlign | Stack 模式下按钮的对齐方式 |
Stack.StackMapSize | bool | 是否根据最大页面尺寸统一所有按钮大小 |
Header.HeaderPosition | VisualOrientation | HeaderGroup 模式下头部的位置 |
Header.HeaderStyle | HeaderStyle | 头部区域的视觉风格 |
Button.ButtonDisplay | ButtonDisplay | 按钮上显示的内容(Text / Image / TextImage 等) |
Button.CloseButtonDisplay | ButtonDisplay | 关闭按钮的显示策略 |
Button.ButtonAction | NavigatorAction | 点击按钮时的行为(SelectPage / None) |
PaletteMode | PaletteMode | 调色板模式(跟随全局或独立设置) |
NavigatorMode 模式一览
| 模式 | 说明 |
|---|---|
NavigatorMode.BarTabGroup | 选项卡 + 内容区域(最常用,类似 TabControl) |
NavigatorMode.BarRibbonTabGroup | Ribbon 风格选项卡 + 内容区域 |
NavigatorMode.BarCheckButtonGroupOutside | 外部 CheckButton 栏 + 内容区域 |
NavigatorMode.BarCheckButtonGroupInside | 内部 CheckButton 栏 + 内容区域 |
NavigatorMode.BarCheckButtonOnly | 仅显示 CheckButton 栏(无内容区域) |
NavigatorMode.HeaderGroup | HeaderGroup 风格,头部显示页面信息 |
NavigatorMode.HeaderGroupTab | HeaderGroup + 选项卡混合 |
NavigatorMode.StackCheckButtonGroup | 垂直/水平堆叠按钮 + 内容区域 |
NavigatorMode.StackCheckButtonHeaderGroup | 堆叠按钮 + HeaderGroup 内容区域 |
NavigatorMode.OutlookFull | Outlook 风格完整模式(大按钮 + 小按钮溢出) |
NavigatorMode.OutlookMini | Outlook 精简模式(仅小按钮) |
NavigatorMode.Panel | 纯面板模式(无导航 UI,仅显示选中页面) |
快速上手
基本用法(代码创建)
using Krypton.Navigator;
// 创建导航器
var navigator = new KryptonNavigator();
navigator.Dock = DockStyle.Fill;
navigator.NavigatorMode = NavigatorMode.BarTabGroup;
// 创建页面
var page1 = new KryptonPage("页面一", "第一个页面的标题", "描述文字");
page1.TextTitle = "欢迎";
page1.TextDescription = "这是第一个导航页面";
var page2 = new KryptonPage("页面二", "第二个页面的标题", "描述文字");
// 向页面添加控件
var label = new KryptonLabel();
label.Text = "Hello Navigator!";
page1.Controls.Add(label);
// 添加页面到导航器
navigator.Pages.AddRange(new KryptonPage[] { page1, page2 });
this.Controls.Add(navigator);
切换模式
// 切换为 Outlook 风格
navigator.NavigatorMode = NavigatorMode.OutlookFull;
// 切换为堆叠按钮
navigator.NavigatorMode = NavigatorMode.StackCheckButtonGroup;
navigator.Stack.Orientation = VisualOrientation.Left;
// 切换为 HeaderGroup
navigator.NavigatorMode = NavigatorMode.HeaderGroup;
响应页面切换事件
navigator.SelectedPageChanged += (s, e) =>
{
var page = navigator.SelectedPage;
if (page != null)
{
statusLabel.Text = "当前页面:" + page.Text;
}
};
进阶用法
动态添加/移除页面
// 动态添加
var newPage = new KryptonPage("新页面", "动态添加", "");
navigator.Pages.Add(newPage);
// 移除指定页面
navigator.Pages.Remove(page2);
// 移除当前选中页面
if (navigator.SelectedPage != null)
navigator.Pages.Remove(navigator.SelectedPage);
自定义选项卡外观
// 设置选项卡方向为左侧
navigator.Bar.Orientation = VisualOrientation.Left;
// 允许多行标签
navigator.Bar.BarMultiline = BarMultiline.MultiLine;
// 设置按钮显示内容(图标+文字)
navigator.Button.ButtonDisplay = ButtonDisplay.Logic;
// 显示关闭按钮
navigator.Button.CloseButtonDisplay = ButtonDisplay.ShowEnabled;
Outlook 模式配置
navigator.NavigatorMode = NavigatorMode.OutlookFull;
// 设置溢出按钮数量(底部小按钮)
navigator.Outlook.OverflowSize = 3;
// 设置大按钮的最小高度
navigator.Outlook.MiniButtonSize = new Size(0, 24);
提示:在 LCode 设计器中,从工具箱「LCode Components」分类拖放 KryptonNavigator 后,可通过属性面板的
Pages 集合编辑器添加 KryptonPage。每个 KryptonPage 相当于一个独立容器,可在其中放置任意控件。
对应示例项目
📁 Source/Krypton Navigator Examples/
包含多个子项目:
Navigator Modes— 演示所有 NavigatorMode 的切换效果Navigator Playground— 交互式调整各属性Navigator Palettes— 不同调色板下的外观对比Navigator PerPageButtons— 每页独立按钮配置Navigator ToolTips— 工具提示配置Navigator Adorned Buttons— 装饰按钮示例Navigator Basic— 最简用法入门