ProgressBar Design Token
所有进度条变体(ProgressBar、CircleProgress、DashboardProgress、StepsProgressBar)共享同一个 ProgressBarToken(Token ID: "ProgressBar"),所有视觉属性均从全局 SharedToken 派生。
Token 资源访问方式
在 AXAML 中使用组件级 Token:
在 AXAML 中使用全局共享 Token:
组件级 Token 一览
以下是 ProgressBarToken 定义的全部组件级 Token,按功能分组说明。
颜色 Token
| Token 名 |
类型 |
来源 |
说明 |
DefaultColor |
Color |
SharedToken.ColorInfo |
进度指示器默认颜色(Normal 状态下使用) |
RemainingColor |
Color |
SharedToken.ColorFillSecondary |
轨道(未完成部分)颜色 |
CircleTextColor |
Color |
SharedToken.ColorText |
圆形/仪表盘进度条中心百分比文字颜色 |
圆角 Token
| Token 名 |
类型 |
来源 |
说明 |
LineBorderRadius |
CornerRadius |
固定 100(胶囊形) |
线形进度条圆角半径(非常大的值实现胶囊效果) |
圆形进度条 Token
| Token 名 |
类型 |
来源 |
说明 |
CircleMinimumTextFontSize |
double |
SharedToken.FontSizeSM - 2 |
圆形进度条百分比文字最小字号 |
CircleMinimumIconSize |
double |
SharedToken.SizeXS |
圆形进度条状态图标最小尺寸 |
线形进度条 Token
| Token 名 |
类型 |
来源 |
说明 |
LineInfoIconSize |
double |
SharedToken.IconSize |
线形进度条信息图标尺寸(正常大小) |
LineInfoIconSizeSM |
double |
SharedToken.IconSizeSM |
线形进度条信息图标尺寸(小号) |
LineExtraInfoMargin |
double |
SharedToken.ControlPaddingHorizontalSM |
百分比标签与进度条之间的间距 |
LineProgressPadding |
double |
SharedToken.UniformlyPaddingXXS / 2 |
线形进度条内间距(Inner 模式下标签与边缘的间距) |
步骤进度条内部 Token
| Token 名 |
类型 |
来源 |
说明 |
ProgressStepMinWidth |
double |
— |
步骤进度条最小宽度 |
ProgressStepMarginInlineEnd |
Thickness |
— |
步骤之间的间距 |
ProgressActiveMotionDuration |
double |
— |
Active 状态动画持续时间 |
主题中使用的全局 SharedToken
除组件级 Token 外,进度条的 ControlTheme 还直接引用了以下全局 SharedToken:
| Token 资源键 |
使用场景 |
ColorInfo |
Normal 状态的指示器颜色(蓝色) |
ColorSuccess |
Success 状态/完成态的指示器颜色(绿色) |
ColorError |
Exception 状态的指示器和图标颜色(红色) |
ColorFillSecondary |
轨道(未完成部分)默认颜色 |
ColorText |
线形进度条百分比文字颜色 |
ColorTextLightSolid |
Inner 模式下浅色背景上的文字颜色 |
FontSize / FontSizeSM |
百分比文字字号(正常/小号) |
FontFamily |
百分比文字字体 |
IconSize / IconSizeSM |
状态图标尺寸 |
EnableMotion |
全局动画开关 |
MotionDurationVerySlow |
Value 值过渡动画持续时间 |
MotionDurationFast |
颜色过渡动画持续时间 |
Token 对外观的具体影响
状态与颜色映射
| ProgressStatus |
指示器颜色 |
文字/图标颜色 |
说明 |
Normal |
ColorInfo |
ColorText |
默认蓝色进度 |
Success |
ColorSuccess |
ColorSuccess |
绿色完成态 |
Exception |
ColorError |
ColorError |
红色异常态 |
Active |
ColorInfo + 动画 |
ColorText |
蓝色 + 脉冲动画 |
完成(Value == Maximum) |
ColorSuccess |
显示 ✓ 图标 |
自动切换到成功色 |
尺寸与线宽映射
线形进度条(ProgressBar / StepsProgressBar)
| SizeType |
线宽 |
字号 |
图标大小 |
Large |
8px |
FontSize |
LineInfoIconSize |
Middle |
6px |
FontSize |
LineInfoIconSize |
Small |
4px |
FontSizeSM |
LineInfoIconSizeSM |
圆形/仪表盘进度条(CircleProgress / DashboardProgress)
| SizeType |
默认直径 |
线宽(自动计算) |
字号(自动计算) |
Large |
120px |
≈ 8px |
直径 × 0.15 + 6 |
Middle |
90px |
≈ 6px |
直径 × 0.15 + 6 |
Small |
60px |
≈ 4px |
直径 × 0.15 + 6(≥ CircleMinimumTextFontSize) |
步骤进度条默认块宽度
| SizeType |
ChunkWidth |
Large |
14px |
Middle |
6px |
Small |
2px |
块间距固定为 2px(DEFAULT_CHUNK_SPACE)。
过渡动画
当 IsMotionEnabled == true 时,以下属性变化会有平滑过渡:
| 属性 |
过渡类型 |
持续时间 |
缓动函数 |
Value |
DoubleTransition |
MotionDurationVerySlow |
ExponentialEaseOut |
StrokeBrush |
SolidColorBrushTransition |
MotionDurationFast |
线性 |
Foreground |
SolidColorBrushTransition |
MotionDurationFast |
线性 |