Skip to content

Navbar 导航栏 ​

页面顶部固定栏。左/中/右三段,支持文字与图标。

契约源:lh-ui-core/specs/navbar.json · 黄金用例:lh-ui-core/cases/navbar.json(6 条,已翻译为 xUnit 测试)

基础用法 ​

层级取 zIndex.sticky,宿主将其作为页面顶部固定栏(Grid 首行或 Canvas 顶部)。

9:41Navbar 基础
← 返回青花瓷更多

HTML 模拟预览(Windows / WinUI 3 外观),非真机渲染

csharp
var navbar = new LhNavbar
{
    Title = "青花瓷",
    LeftText = "返回",
    LeftIcon = "back",
    RightText = "更多",
};
navbar.LeftClick += () => { };
navbar.RightClick += () => { };

图标 ​

LeftIcon / RightIcon 传入本地图标名(见 Icon 文档的字形表),与文字二者非空时都显示; 两侧无内容时不触发对应点击事件。

9:41Navbar 图标
←仅图标⋯
无两侧内容

HTML 模拟预览(Windows / WinUI 3 外观),非真机渲染

分隔线 ​

Bordered 为 true 时底部绘制 color.border.lighter 分隔线;默认开启。

9:41Navbar 分隔线
带分隔线
无分隔线

HTML 模拟预览(Windows / WinUI 3 外观),非真机渲染

API ​

属性 ​

属性说明类型默认值
LeftClick点击左侧区域时触发(无左侧内容时不触发)event Action—
RightClick点击右侧区域时触发(无右侧内容时不触发)event Action—
Title中间标题string""
LeftText左侧按钮文字;与 LeftIcon 二者非空时都显示string""
LeftIcon左侧图标名(本地图标体系渲染)string?null
RightText右侧按钮文字;与 RightIcon 二者非空时都显示string""
RightIcon右侧图标名(本地图标体系渲染)string?null
Bordered是否绘制底部分隔线booltrue

令牌对照 ​

令牌用途
navbar.height高度
navbar.paddingHorizontal左右内边距
navbar.titleFontSize标题与两侧文字字号
navbar.iconSize两侧图标尺寸
navbar.borderWidth底部分隔线宽
color.background.default底色
color.text.primary标题与两侧文字色
color.border.lighter底部分隔线色
zIndex.sticky固定层级
spacing.xs图标与文字间距
typography.fontFamily国风衬线字体栈

黄金用例对照 ​

cases/navbar.json 的 6 条断言与 xUnit 测试的对应关系(tests/LhNavbarTests.cs):

case id断言本地测试
title-renders-text标题按字号令牌渲染Title_Renders_Text
leftclick-emits-onleftclick点击左侧触发 onLeftClickLeftClick_Emits_OnLeftClick
rightclick-emits-onrightclick点击右侧触发 onRightClickRightClick_Emits_OnRightClick
no-left-content-no-onleftclick无左侧内容时不触发No_Left_Content_No_OnLeftClick
bordered-uses-border-token分隔线消费 border.lighter 令牌Bordered_Uses_Border_Token
height-uses-navbar-height-token高度消费 navbar.height 令牌Height_Uses_Navbar_Height_Token

另有暗色专项:Dark_Colors_Come_From_Dark_Tokens / Dimensions_Are_Identical_In_Dark_Mode。 运行:cd lh-ui-windows && dotnet test。