KryptonBreadCrumb ✓ LCode 已集成 Toolkit
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonBreadCrumb 是面包屑导航控件,类似 Windows 资源管理器地址栏的路径导航效果。它以层级按钮链的形式展示当前路径,用户可点击任意层级快速跳转,每个节点还可展开下拉列表显示同级子项,非常适合文件浏览器、分类导航等场景。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
RootItem | BreadCrumbItem | 根节点(面包屑的起始项) |
SelectedItem | BreadCrumbItem | 当前选中的节点 |
DropButtonStyle | DropButtonStyle | 下拉按钮的视觉风格 |
StateCommon.Item.Content.ShortText.Font | Font | 节点文字字体 |
StateCommon.Item.Content.ShortText.Color1 | Color | 节点文字颜色 |
StateCommon.Item.Back.Color1 | Color | 节点背景色 |
StateTracking.Item.Back.Color1 | Color | 鼠标悬停时节点背景色 |
StatePressed.Item.Back.Color1 | Color | 按下时节点背景色 |
Size | Size | 控件尺寸 |
Dock | DockStyle | 停靠方式(常用于 DockStyle.Top) |
快速上手
基本用法
using Krypton.Toolkit;
// 创建面包屑导航
var breadCrumb = new KryptonBreadCrumb();
breadCrumb.Dock = DockStyle.Top;
breadCrumb.Height = 28;
// 构建层级节点
var root = new BreadCrumbItem("电脑");
var driveC = new BreadCrumbItem("本地磁盘 (C:)");
var folderUsers = new BreadCrumbItem("Users");
var folderDocs = new BreadCrumbItem("Documents");
root.Items.Add(driveC);
driveC.Items.Add(folderUsers);
folderUsers.Items.Add(folderDocs);
breadCrumb.RootItem = root;
breadCrumb.SelectedItem = folderDocs;
// 选中节点变化事件
breadCrumb.SelectedItemChanged += (s, e) =>
{
lblPath.Text = "当前路径:" + GetFullPath(breadCrumb.SelectedItem);
};
this.Controls.Add(breadCrumb);
获取完整路径
private string GetFullPath(BreadCrumbItem item)
{
var parts = new List<string>();
var current = item;
while (current != null)
{
parts.Insert(0, current.ShortText);
current = current.Parent;
}
return string.Join(" > ", parts);
}
进阶用法
文件浏览器联动
// 面包屑 + 文件列表联动
var breadCrumb = new KryptonBreadCrumb();
breadCrumb.Dock = DockStyle.Top;
var listView = new KryptonListView();
listView.Dock = DockStyle.Fill;
listView.View = View.Details;
// 点击面包屑节点时刷新文件列表
breadCrumb.SelectedItemChanged += (s, e) =>
{
var path = GetFullPath(breadCrumb.SelectedItem);
LoadDirectory(path, listView);
};
// 双击文件列表中的文件夹时更新面包屑
listView.ItemActivate += (s, e) =>
{
if (listView.SelectedItems.Count > 0)
{
var folderName = listView.SelectedItems[0].Text;
NavigateToFolder(folderName, breadCrumb);
}
};
动态添加子节点
// 选中节点时动态加载子项(懒加载)
breadCrumb.SelectedItemChanged += (s, e) =>
{
var item = breadCrumb.SelectedItem;
if (item.Items.Count == 0)
{
// 从数据源加载子项
var children = GetChildItems(item);
foreach (var child in children)
{
item.Items.Add(new BreadCrumbItem(child.Name));
}
}
};
提示:KryptonBreadCrumb 的节点通过
BreadCrumbItem.Items 集合构建层级关系。设置 SelectedItem 会自动展开从根到该节点的完整路径链。
对应示例项目
📁 Source/Krypton Toolkit Examples/KryptonBreadCrumb Examples/
包含:基本面包屑导航、文件浏览器联动、动态加载子节点演示。