KryptonPage ✓ LCode 已集成 Navigator
命名空间:Krypton.Navigator · 程序集:Krypton.Navigator.dll
简介
KryptonPage 是 KryptonNavigator 中的单个页面容器。它继承自 VisualPanel,可像普通 Panel 一样承载子控件,同时提供标题、描述、图标等元数据,供 Navigator 在标签、按钮或头部区域中显示。KryptonPage 不能独立使用,必须作为 KryptonNavigator(或 Docking 组件)的子页面才有意义。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
Text | string | 页面名称(显示在选项卡/按钮上的主文字) |
TextTitle | string | 页面标题(HeaderGroup 模式下显示的大标题) |
TextDescription | string | 页面描述(HeaderGroup 模式下显示的副标题/描述文字) |
ImageSmall | Image | 小图标(显示在选项卡/按钮上,通常 16×16) |
ImageMedium | Image | 中等图标(Outlook 大按钮模式使用,通常 24×24) |
ImageLarge | Image | 大图标(HeaderGroup 头部区域使用,通常 32×32 或 48×48) |
UniqueName | string | 页面唯一标识符(Docking 持久化时使用) |
Enabled | bool | 页面是否启用(禁用后选项卡灰显不可点击) |
Visible | bool | 页面是否可见(隐藏后不出现在导航栏中) |
ToolTipTitle | string | 工具提示标题 |
ToolTipBody | string | 工具提示正文 |
ToolTipImage | Image | 工具提示图标 |
ButtonSpecs | 集合 | 页面级附加按钮(如关闭按钮) |
Flags | KryptonPageFlags | 页面行为标志(AllowPageDrag、AllowPageReorder 等) |
快速上手
创建基本页面
using Krypton.Navigator;
// 使用构造函数创建(text, title, description)
var page = new KryptonPage("设置", "系统设置", "配置应用程序参数");
// 设置图标
page.ImageSmall = Properties.Resources.icon_settings_16;
page.ImageLarge = Properties.Resources.icon_settings_32;
// 设置唯一名称(Docking 持久化需要)
page.UniqueName = "SettingsPage";
// 向页面添加控件(与普通 Panel 相同)
var txtName = new KryptonTextBox();
txtName.Location = new Point(10, 40);
txtName.Size = new Size(200, 24);
page.Controls.Add(txtName);
// 添加到 Navigator
navigator.Pages.Add(page);
在页面中构建复杂布局
var pageReport = new KryptonPage("报表", "销售报表", "查看月度销售数据");
pageReport.ImageSmall = Properties.Resources.icon_report;
// 页面内使用 Dock 布局
var grid = new KryptonDataGridView();
grid.Dock = DockStyle.Fill;
pageReport.Controls.Add(grid);
var panelTop = new KryptonPanel();
panelTop.Dock = DockStyle.Top;
panelTop.Height = 40;
pageReport.Controls.Add(panelTop);
navigator.Pages.Add(pageReport);
进阶用法
页面级 ButtonSpec(关闭按钮)
var page = new KryptonPage("文档1", "", "");
// 添加页面级关闭按钮
var closeSpec = new ButtonSpecAny();
closeSpec.Type = PaletteButtonSpecStyle.Close;
closeSpec.Click += (s, e) =>
{
navigator.Pages.Remove(page);
page.Dispose();
};
page.ButtonSpecs.Add(closeSpec);
控制页面拖拽与排序
// 允许页面拖拽(配合 Docking 使用)
page.Flags |= KryptonPageFlags.AllowPageDrag;
// 允许在 Navigator 中拖拽重排
page.Flags |= KryptonPageFlags.AllowPageReorder;
// 禁止用户关闭此页面
page.Flags &= ~KryptonPageFlags.AllowConfigSave;
动态修改页面元数据
// 运行时更新标题和描述
page.TextTitle = "已更新";
page.TextDescription = "数据已刷新:" + DateTime.Now.ToString("HH:mm:ss");
// 更新图标表示状态
page.ImageSmall = isDirty ? Resources.icon_modified : Resources.icon_saved;
// 隐藏/显示页面
page.Visible = false; // 从导航栏隐藏
page.Visible = true; // 重新显示
提示:KryptonPage 本质上是一个容器面板。在设计器中双击 KryptonNavigator 的
Pages 属性即可打开集合编辑器,添加页面后可切换到该页面的设计视图来放置子控件。UniqueName 在 Docking 场景中非常重要,用于持久化布局时标识页面。
对应示例项目
📁 Source/Krypton Navigator Examples/
KryptonPage 的用法贯穿所有 Navigator 示例项目,特别是:
Navigator Basic— 页面创建与基本属性设置Navigator PerPageButtons— 页面级 ButtonSpec 配置Navigator Modes— 页面在不同模式下的显示效果