Files

5.2 KiB
Raw Permalink Blame History

ProgressBar Design Token

所有进度条变体(ProgressBar、CircleProgress、DashboardProgress、StepsProgressBar)共享同一个 ProgressBarToken(Token ID: "ProgressBar"),所有视觉属性均从全局 SharedToken 派生。


Token 资源访问方式

在 AXAML 中使用组件级 Token:

{atom:ProgressBarTokenResource DefaultColor}
{atom:ProgressBarTokenResource RemainingColor}
{atom:ProgressBarTokenResource CircleTextColor}
{atom:ProgressBarTokenResource LineBorderRadius}

在 AXAML 中使用全局共享 Token:

{atom:SharedTokenResource ColorInfo}
{atom:SharedTokenResource ColorSuccess}
{atom:SharedTokenResource ColorError}

组件级 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 线性