8.0 KiB
ProgressBar API 参考
命名空间
namespace AtomUI.Desktop.Controls; // ProgressBar, CircleProgress, DashboardProgress, StepsProgressBar
namespace AtomUI.Controls.Commons; // Abstract 基类
namespace AtomUI.Controls; // 枚举、伪类常量
AXAML 命名空间前缀:atom(xmlns:atom="https://atomui.net")
枚举类型
ProgressStatus(来自 AtomUI.Controls)
进度状态枚举。
| 值 | 说明 |
|---|---|
Normal |
正常进行中(默认),使用 ColorInfo 主色 |
Success |
成功完成,使用 ColorSuccess 成功色 |
Exception |
异常/失败,使用 ColorError 错误色,显示异常图标 |
Active |
活跃进行中(线形进度条专属),主色 + 动画效果 |
DashboardGapPosition(来自 AtomUI.Controls)
仪表盘缺口位置枚举。
| 值 | 说明 |
|---|---|
Left |
缺口在左侧 |
Top |
缺口在顶部 |
Right |
缺口在右侧 |
Bottom |
缺口在底部(默认) |
LinePercentAlignment(来自 AtomUI.Controls)
百分比标签对齐方式枚举。
| 值 | 说明 |
|---|---|
Start |
起始位置(水平→左侧,垂直→顶部) |
Center |
居中(水平→下方居中,垂直→右侧居中) |
End |
末尾位置(水平→右侧,垂直→底部)。默认值 |
PercentPosition(来自 AtomUI.Controls,record struct)
百分比标签位置结构体,控制标签是否在进度条内部及其对齐方式。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
IsInner |
bool |
false |
是否将百分比标签放在进度条内部 |
Alignment |
LinePercentAlignment |
End |
标签对齐方式 |
SizeType(来自 AtomUI.Controls)
尺寸类型枚举。
| 值 | 说明 |
|---|---|
Small |
小号(线宽 4px) |
Middle |
中号(线宽 6px) |
Large |
大号(线宽 8px,默认) |
所有进度条共享属性(AbstractProgressBar)
以下属性由所有四种进度条控件共享,定义在 AbstractProgressBar 基类中。
公共属性(StyledProperty / DirectProperty)
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Value |
double |
0 |
当前进度值(继承自 RangeBase) |
Minimum |
double |
0 |
最小值(继承自 RangeBase) |
Maximum |
double |
100 |
最大值(继承自 RangeBase) |
Percentage |
double |
— | 只读。自动计算的百分比 = (Value - Minimum) / (Maximum - Minimum) × 100 |
IsIndeterminate |
bool |
false |
是否为不定态(显示持续动画而非具体进度) |
IsShowProgressInfo |
bool |
true |
是否显示进度信息(百分比文字或状态图标) |
ProgressTextFormat |
string |
"{0:0}%" |
进度文字格式化字符串,{0} 为百分比值 |
StrokeBrush |
IBrush? |
由主题 Token 控制 | 进度指示器描边颜色,支持纯色和渐变 |
TrailColor |
Color? |
null |
轨道(未完成部分)颜色,设置后覆盖默认 GrooveBrush |
StrokeLineCap |
PenLineCap |
PenLineCap.Round |
端点样式:Round(圆角)、Flat(平头)、Square(方头) |
SizeType |
SizeType |
SizeType.Large |
尺寸类型,影响默认线宽 |
Status |
ProgressStatus |
ProgressStatus.Normal |
进度状态,影响颜色和图标 |
IndicatorThickness |
double |
NaN(自动) |
自定义进度条粗细,设置后覆盖尺寸自动计算 |
SuccessThreshold |
double |
NaN(禁用) |
成功阈值,达到该值的部分使用 SuccessStrokeBrush |
SuccessStrokeBrush |
IBrush? |
由主题控制 | 成功阈值段的描边颜色 |
IsMotionEnabled |
bool |
跟随全局 Token EnableMotion |
是否启用过渡动画 |
ExceptionCompletedIcon |
PathIcon? |
自动设置 | 异常状态完成图标(线形:CloseCircleFilled,圆形:CloseOutlined) |
SuccessCompletedIcon |
PathIcon? |
自动设置 | 成功状态完成图标(线形:CheckCircleFilled,圆形:CheckOutlined) |
ProgressBar 线形进度条
继承:RangeBase → AbstractProgressBar → AbstractLineProgress → AbstractGeneralProgressBar → ProgressBar
专有属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Orientation |
Orientation |
Horizontal |
方向:Horizontal(水平)或 Vertical(垂直) |
PercentPosition |
PercentPosition |
{ IsInner=false, Alignment=End } |
百分比标签位置。支持 Inner(进度条内部)和 Outer(外部)模式 |
CircleProgress 圆形进度条
继承:RangeBase → AbstractProgressBar → AbstractCircleProgress → AbstractGeneralCircleProgress → CircleProgress
专有属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
StepCount |
int |
0 |
步进段数量。>0 时将圆环分为等分段 |
StepGap |
double |
2 |
步进段之间的间隙(像素) |
尺寸行为
| SizeType | 默认直径 |
|---|---|
Large |
120px |
Middle |
90px |
Small |
60px |
圆形进度条会根据可用空间自动调整大小。设置 Width/Height 可精确控制尺寸。
DashboardProgress 仪表盘进度条
继承:RangeBase → AbstractProgressBar → AbstractCircleProgress → AbstractGeneralDashboardProgress → DashboardProgress
专有属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
DashboardGapPosition |
DashboardGapPosition |
Bottom |
仪表盘缺口位置 |
GapDegree |
double |
75 |
仪表盘缺口角度(0–295) |
StepCount |
int |
0 |
步进段数量(继承自 AbstractCircleProgress) |
StepGap |
double |
2 |
步进段间隙(继承自 AbstractCircleProgress) |
StepsProgressBar 步骤进度条
继承:RangeBase → AbstractProgressBar → AbstractLineProgress → AbstractGeneralStepsProgressBar → StepsProgressBar
专有属性
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Orientation |
Orientation |
Horizontal |
方向(继承自 AbstractLineProgress) |
Steps |
int |
1 |
步骤总数(最小 1) |
ChunkWidth |
double |
NaN(自动) |
每个块的宽度。自动时根据 SizeType:Large=14, Middle=6, Small=2 |
ChunkHeight |
double |
NaN(自动) |
每个块的高度 |
StepsStrokeBrush |
List<IBrush>? |
null |
每个步骤的独立颜色列表。null 时使用统一 StrokeBrush |
PercentPosition |
LinePercentAlignment |
End |
百分比标签位置 |
伪类(Pseudo-Classes)
所有进度条共享以下伪类:
| 伪类 | 常量 | 触发条件 |
|---|---|---|
:indeterminate |
ProgressBarPseudoClass.Indeterminate |
IsIndeterminate == true |
:completed |
ProgressBarPseudoClass.Completed |
Value == Maximum |
线形进度条(ProgressBar)额外伪类
| 伪类 | 常量 | 触发条件 |
|---|---|---|
:horizontal |
ProgressBarPseudoClass.Horizontal |
Orientation == Horizontal |
:vertical |
ProgressBarPseudoClass.Vertical |
Orientation == Vertical |
:labelinner |
ProgressBarPseudoClass.PercentLabelInner |
PercentPosition.IsInner == true |
:labelinner-start |
ProgressBarPseudoClass.PercentLabelInnerStart |
Inner 模式下 Alignment == Start |
:labelinner-center |
ProgressBarPseudoClass.PercentLabelInnerCenter |
Inner 模式下 Alignment == Center |
:labelinner-end |
ProgressBarPseudoClass.PercentLabelInnerEnd |
Inner 模式下 Alignment == End |
StepsProgressBar 额外伪类
| 伪类 | 触发条件 |
|---|---|
:horizontal / :vertical |
与 ProgressBar 相同 |
实现的接口
ISizeTypeAware
public SizeType SizeType { get; set; }
控制进度条的默认粗细。线形进度条:Large=8px, Middle=6px, Small=4px。圆形进度条根据直径自动按比例计算。
IMotionAwareControl
public bool IsMotionEnabled { get; set; }
控制 Value、StrokeBrush、Foreground 属性变化时的过渡动画。