Segmented Design Token
Segmented 控件使用 SegmentedToken(Token ID: "Segmented")作为组件级 Design Token,所有视觉属性均从全局 SharedToken 派生,不硬编码任何具体值。
Token 资源访问方式
在 AXAML 中使用组件级 Token:
在 AXAML 中使用全局共享 Token:
组件级 Token 一览
以下是 SegmentedToken 定义的全部组件级 Token,按功能分组说明。
颜色 Token
| Token 名 |
类型 |
来源 |
说明 |
ItemColor |
Color |
SharedToken.ColorTextLabel |
选项文本颜色(未选中、非悬浮态) |
ItemHoverColor |
Color |
SharedToken.ColorText |
选项悬浮态文本颜色 |
ItemHoverBg |
Color |
SharedToken.ColorFillSecondary |
选项悬浮态背景颜色 |
ItemActiveBg |
Color |
SharedToken.ColorFill |
选项激活态(按下)背景颜色 |
ItemSelectedBg |
Color |
SharedToken.ColorBgElevated |
选中选项的背景颜色(色块 Thumb 的背景色) |
ItemSelectedColor |
Color |
SharedToken.ColorText |
选中选项的文本颜色 |
TrackBg |
Color |
SharedToken.ColorBgLayout |
容器(轨道)背景色 |
尺寸 Token
| Token 名 |
类型 |
来源 |
说明 |
ItemMinHeightLG |
double |
SharedToken.ControlHeightLG - TrackPadding * 2 |
大号选项最小高度 |
ItemMinHeight |
double |
SharedToken.ControlHeight - TrackPadding * 2 |
中号选项最小高度 |
ItemMinHeightSM |
double |
SharedToken.ControlHeightSM - TrackPadding * 2 |
小号选项最小高度 |
间距 Token
| Token 名 |
类型 |
来源 |
说明 |
TrackPadding |
Thickness |
SharedToken.LineWidthBold(均匀四边) |
容器内间距(色块与容器边缘的间隙) |
SegmentedItemPadding |
Thickness |
SharedToken.ControlPaddingHorizontal - LineWidth(水平方向) |
中号/大号选项的水平内间距 |
SegmentedItemPaddingSM |
Thickness |
SharedToken.ControlPaddingHorizontalSM - LineWidth(水平方向) |
小号选项的水平内间距 |
SegmentedItemContentMargin |
Thickness |
SharedToken.UniformlyPaddingXXS(仅左侧) |
带图标时内容文字的左边距(图标与文字之间的间距) |
主题中使用的全局 SharedToken
除组件级 Token 外,Segmented 的 ControlTheme 还直接引用了以下全局 SharedToken:
| Token 资源键 |
使用场景 |
EnableMotion |
全局动画开关(控制 IsMotionEnabled 的默认值) |
BoxShadowsTertiary |
选中色块的阴影效果 |
BorderRadiusLG / BorderRadius / BorderRadiusSM / BorderRadiusXS |
不同尺寸下容器和选项的圆角 |
FontSizeLG / FontSize |
大号和中/小号选项的字体大小 |
IconSizeLG / IconSize / IconSizeSM |
不同尺寸下图标的宽高 |
ColorTextDisabled |
禁用选项的文本颜色 |
ControlHeightLG / ControlHeight / ControlHeightSM |
用于计算选项最小高度 |
ControlPaddingHorizontal / ControlPaddingHorizontalSM |
用于计算选项水平内间距 |
LineWidth / LineWidthBold |
用于计算容器内间距和选项内间距偏移 |
Token 对外观的具体影响
容器外观
| 属性 |
Token 来源 |
| 背景色 |
TrackBg(ColorBgLayout) |
| 内间距 |
TrackPadding(LineWidthBold) |
| 圆角(Large) |
BorderRadiusLG(全局 SharedToken) |
| 圆角(Middle) |
BorderRadius(全局 SharedToken) |
| 圆角(Small) |
BorderRadiusSM(全局 SharedToken) |
选中色块(Thumb)外观
| 属性 |
Token 来源 |
| 背景色 |
ItemSelectedBg(ColorBgElevated) |
| 阴影 |
BoxShadowsTertiary(全局 SharedToken) |
| 圆角(Large) |
BorderRadius(全局 SharedToken) |
| 圆角(Middle) |
BorderRadiusSM(全局 SharedToken) |
| 圆角(Small) |
BorderRadiusXS(全局 SharedToken) |
选项状态与 Token 映射
| 状态 |
文字颜色 Token |
背景色 Token |
图标颜色 Token |
| 正常(未选中) |
ItemColor |
透明 |
ItemColor |
| 悬浮(未选中) |
ItemHoverColor |
ItemHoverBg |
ItemHoverColor |
| 按下(未选中) |
— |
ItemActiveBg |
ItemSelectedColor |
| 选中 |
ItemSelectedColor |
ItemSelectedBg |
ItemSelectedColor |
| 禁用 |
ColorTextDisabled |
— |
— |
尺寸与 Token 映射
| 尺寸 |
选项最小高度 |
选项内间距 |
字体大小 |
图标大小 |
选项圆角 |
Large |
ItemMinHeightLG |
SegmentedItemPadding |
FontSizeLG |
IconSizeLG |
BorderRadius |
Middle |
ItemMinHeight |
SegmentedItemPadding |
FontSize |
IconSize |
BorderRadiusSM |
Small |
ItemMinHeightSM |
SegmentedItemPaddingSM |
FontSize |
IconSizeSM |
BorderRadiusXS |