NavMenu 控件使用 NavMenuToken(Token ID: "NavMenu")作为组件级 Design Token,所有视觉属性均从全局 SharedToken 派生,不硬编码任何具体值。
Token 资源访问方式
在 AXAML 中使用组件级 Token:
在 AXAML 中使用全局共享 Token:
组件级 Token 一览
以下是 NavMenuToken 定义的全部组件级 Token,按功能分组说明。
菜单项颜色 Token
| Token 名 |
类型 |
来源 |
说明 |
ItemColor |
Color |
SharedToken.ColorText |
菜单项文字颜色 |
ItemHoverColor |
Color |
SharedToken.ColorText |
菜单项悬浮文字颜色 |
ItemSelectedColor |
Color |
SharedToken.ColorPrimary |
菜单项选中文字颜色 |
ItemDisabledColor |
Color |
SharedToken.ColorTextDisabled |
菜单项禁用文字颜色 |
HorizontalItemHoverColor |
Color |
SharedToken.ColorPrimary |
水平菜单项悬浮文字颜色 |
HorizontalItemSelectedColor |
Color |
SharedToken.ColorPrimary |
水平菜单项选中文字颜色 |
GroupTitleColor |
Color |
SharedToken.ColorTextDescription |
分组标题文字颜色 |
KeyGestureColor |
Color |
SharedToken.ColorTextSecondary |
快捷键文字颜色 |
菜单项背景 Token
| Token 名 |
类型 |
来源 |
说明 |
ItemBg |
Color |
SharedToken.ColorTransparent |
菜单项默认背景色(透明) |
ItemHoverBg |
Color |
SharedToken.ColorBgTextHover |
菜单项悬浮背景色 |
ItemActiveBg |
Color |
SharedToken.ColorFillContent |
菜单项激活背景色 |
ItemSelectedBg |
Color |
SharedToken.ControlItemBgActive |
菜单项选中背景色 |
SubMenuItemBg |
Color |
SharedToken.ColorFillAlter |
子菜单项背景色 |
HorizontalItemSelectedBg |
Color |
Colors.Transparent |
水平菜单项选中背景色 |
HorizontalItemHoverBg |
Color |
Colors.Transparent |
水平菜单项悬浮背景色 |
危险菜单项 Token
| Token 名 |
类型 |
来源 |
说明 |
DangerItemColor |
Color |
SharedToken.ColorError |
危险菜单项文字颜色 |
DangerItemHoverColor |
Color |
SharedToken.ColorError |
危险菜单项悬浮文字颜色 |
DangerItemSelectedColor |
Color |
SharedToken.ColorError |
危险菜单项选中文字颜色 |
DangerItemActiveBg |
Color |
SharedToken.ColorError |
危险菜单项激活背景色 |
DangerItemSelectedBg |
Color |
SharedToken.ColorError |
危险菜单项选中背景色 |
圆角 Token
| Token 名 |
类型 |
来源 |
说明 |
ItemBorderRadius |
CornerRadius |
SharedToken.BorderRadiusLG |
菜单项圆角 |
SubMenuItemBorderRadius |
CornerRadius |
SharedToken.BorderRadiusSM |
子菜单项圆角 |
HorizontalItemBorderRadius |
CornerRadius |
new CornerRadius(0) |
水平菜单项圆角(无圆角) |
尺寸与间距 Token
| Token 名 |
类型 |
来源 |
说明 |
ItemHeight |
double |
SharedToken.ControlHeight |
菜单项高度 |
ItemContentMargin |
Thickness |
SharedToken.UniformlyMarginXXS |
菜单项内容外间距 |
ItemContentPadding |
Thickness |
基于 SharedToken.UniformlyPadding |
菜单项内容内间距 |
ItemMargin |
Thickness |
(0, 0, SharedToken.UniformlyMarginXS, 0) |
菜单项内部元素边距 |
HorizontalItemMargin |
Thickness |
(SharedToken.UniformlyPadding, 0) |
水平菜单项外间距 |
InlineItemIndentUnit |
double |
ItemHeight / 2 |
内联菜单项缩进单位 |
VerticalItemsPanelSpacing |
double |
SharedToken.UniformlyMarginXXS |
垂直面板元素间距 |
VerticalChildItemsMargin |
Thickness |
(0, SharedToken.UniformlyMarginXXS, 0, 0) |
垂直面板子项外间距 |
VerticalMenuContentPadding |
Thickness |
SharedToken.PaddingXXS |
垂直面板内容内间距 |
图标 Token
| Token 名 |
类型 |
来源 |
说明 |
IconSize |
double |
SharedToken.FontSize |
菜单项图标尺寸 |
IconMargin |
Thickness |
基于 SharedToken.ControlHeightSM - FontSize |
图标与文字间距 |
ItemIconSize |
double |
SharedToken.IconSize |
菜单项图标展示尺寸 |
CollapsedIconSize |
double |
SharedToken.FontSizeLG |
收起时图标尺寸 |
字体 Token
| Token 名 |
类型 |
来源 |
说明 |
GroupTitleFontSize |
double |
SharedToken.FontSize |
分组标题字体大小 |
GroupTitleLineHeight |
double |
SharedToken.ControlHeight |
分组标题行高 |
水平菜单 Token
| Token 名 |
类型 |
来源 |
说明 |
MenuHorizontalHeight |
double |
SharedToken.ControlHeightLG * 1.15 |
水平菜单整体高度 |
HorizontalLineHeight |
double |
SharedToken.ControlHeightLG * 1.15 |
水平菜单行高 |
ActiveBarScaleX |
double |
1.0 |
选中指示条宽度比例 |
ActiveBarHeight |
double |
SharedToken.LineWidthBold |
选中指示条高度 |
| Token 名 |
类型 |
来源 |
说明 |
MenuPopupBg |
Color |
SharedToken.ColorBgElevated |
Popup 背景色 |
MenuPopupContentPadding |
Thickness |
基于 SharedToken.UniformlyPaddingXXS |
Popup 内容内间距 |
MenuPopupMinWidth |
double |
160 |
Popup 最小宽度 |
MenuPopupMaxWidth |
double |
800 |
Popup 最大宽度 |
MenuPopupMaxHeight |
double |
ItemHeight * 30 |
Popup 最大高度 |
TopLevelItemPopupMarginToAnchor |
double |
SharedToken.UniformlyMarginXS |
顶层菜单项 Popup 边距 |
MenuSubMenuBg |
Color |
SharedToken.ColorBgElevated |
子菜单背景色 |
MenuArrowSize |
double |
SharedToken.FontSize / 7 * 5 |
菜单箭头尺寸 |
其他 Token
| Token 名 |
类型 |
来源 |
说明 |
CollapsedWidth |
double |
SharedToken.ControlHeight * 2 |
收起后菜单宽度 |
暗色主题 Token
暗色主题使用一套完全独立的 Token,当 IsDarkStyle=True 时生效:
| Token 名 |
类型 |
来源 |
说明 |
DarkMenuBg |
Color |
#001529 |
暗色菜单背景色 |
DarkMenuPopupBg |
Color |
#001529 |
暗色 Popup 背景色 |
DarkItemColor |
Color |
基于 ColorTextLightSolid 65% 透明度 |
暗色菜单项文字颜色 |
DarkItemBg |
Color |
Colors.Transparent |
暗色菜单项背景色 |
DarkSubMenuItemBg |
Color |
#000c17 |
暗色子菜单项背景色 |
DarkItemSelectedColor |
Color |
SharedToken.ColorTextLightSolid |
暗色选中文字颜色 |
DarkItemSelectedBg |
Color |
SharedToken.ColorPrimary |
暗色选中背景色 |
DarkItemHoverBg |
Color |
Colors.Transparent |
暗色悬浮背景色 |
DarkItemHoverColor |
Color |
SharedToken.ColorTextLightSolid |
暗色悬浮文字颜色 |
DarkItemDisabledColor |
Color |
基于 ColorTextLightSolid 25% 透明度 |
暗色禁用文字颜色 |
DarkGroupTitleColor |
Color |
基于 ColorTextLightSolid 65% 透明度 |
暗色分组标题颜色 |
DarkDangerItemColor |
Color |
SharedToken.ColorError |
暗色危险菜单项文字颜色 |
DarkDangerItemHoverColor |
Color |
SharedToken.ColorErrorHover |
暗色危险菜单项悬浮颜色 |
DarkDangerItemSelectedColor |
Color |
SharedToken.ColorTextLightSolid |
暗色危险菜单项选中颜色 |
DarkDangerItemSelectedBg |
Color |
SharedToken.ColorError |
暗色危险菜单项选中背景 |
DarkDangerItemActiveBg |
Color |
SharedToken.ColorError |
暗色危险菜单项激活背景 |
主题中使用的全局 SharedToken
除组件级 Token 外,NavMenu 的 ControlTheme 还直接引用了以下全局 SharedToken:
| Token 资源键 |
使用场景 |
ColorPrimary / ColorPrimaryHover / ColorPrimaryActive |
选中项、悬浮项主色调 |
ColorText / ColorTextDescription / ColorTextDisabled |
文字颜色系列 |
ColorTextLightSolid |
亮色文字(用于暗色主题推导) |
ColorTextSecondary |
次要文字(快捷键颜色) |
ColorBgTextHover |
文本悬浮背景色 |
ColorBgElevated |
弹出层背景色 |
ColorBgContainer |
容器背景色 |
ColorFillContent / ColorFillAlter |
填充颜色 |
ColorTransparent |
透明色 |
ColorError / ColorErrorHover |
错误/危险色系 |
ControlHeight / ControlHeightSM / ControlHeightLG |
控件高度 |
ControlItemBgActive |
活跃项背景色 |
BorderRadius / BorderRadiusSM / BorderRadiusLG |
圆角系列 |
FontSize / FontSizeLG |
字体大小 |
IconSize / IconSizeSM |
全局图标尺寸 |
LineWidthBold |
粗线宽度(指示条高度) |
EnableMotion |
全局动画开关 |
Token 对外观的具体影响
亮色主题下菜单项状态与 Token 映射
| 状态 |
文字色 |
背景色 |
| 正常 |
ItemColor |
ItemBg(透明) |
| 悬浮 |
ItemHoverColor |
ItemHoverBg |
| 激活 |
— |
ItemActiveBg |
| 选中 |
ItemSelectedColor |
ItemSelectedBg |
| 禁用 |
ItemDisabledColor |
— |
暗色主题下菜单项状态与 Token 映射
| 状态 |
文字色 |
背景色 |
| 正常 |
DarkItemColor |
DarkItemBg(透明) |
| 悬浮 |
DarkItemHoverColor |
DarkItemHoverBg |
| 选中 |
DarkItemSelectedColor |
DarkItemSelectedBg |
| 禁用 |
DarkItemDisabledColor |
— |
水平模式特殊 Token
水平模式下,选中项不使用背景色高亮,而是通过底部指示条(ActiveBarHeight × ActiveBarScaleX)标识选中状态。选中文字使用 HorizontalItemSelectedColor,悬浮文字使用 HorizontalItemHoverColor。