ProgressBar

.NET Multi-platform App UI (.NET MAUI) ProgressBar 可向用户指明应用正在进行一项冗长的活动。 进度栏是一个水平条,用 double 表示的百分比填充。

ProgressBar 的外观与平台有关,以下屏幕截图显示的是 Android 上的 ProgressBar

Screenshot of ProgressBar on Android.

ProgressBar 定义两个属性:

  • Progress 是一个 double 值,用 0 到 1 的数值表示当前进度。 小于 0 的 Progress 值将固定为 0,大于 1 的值将固定为 1。 此属性的默认值为 0。
  • ProgressColor 是一个定义 ProgressBar 颜色的 Color 值。

这些属性由 BindableProperty 对象提供支持;也就是说,它们可以作为数据绑定的目标,并能进行样式设置。

ProgressBar 还定义 ProgressTo 方法,该方法可为进度条从当前值到指定值的过程设置动画。 有关详细信息,请参阅对 ProgressBar 进行动画处理

创建 ProgressBar

要显示冗长活动的进度,请创建一个 ProgressBar 对象并设置其属性以定义其外观。

以下 XAML 示例演示如何显示 ProgressBar

<ProgressBar Progress="0.5" />

等效 C# 代码如下:

ProgressBar progressBar = new ProgressBar { Progress = 0.5 };

警告

请勿针对 ProgressBar 使用不受约束的水平布局选项,例如 CenterStartEnd。 保持 Fill 的默认 HorizontalOptions 值。

以下 XAML 示例演示了如何更改 ProgressBar 的颜色:

<ProgressBar Progress="0.5"
             ProgressColor="Orange" />

等效 C# 代码如下:

ProgressBar progressBar = new ProgressBar
{
    Progress = 0.5,
    ProgressColor = Colors.Orange
};

对 ProgressBar 进行动画处理

ProgressTo 方法会对 ProgressBar 在一段时间内从其当前 Progress 值转换为所提供的值的过程设置动画。 该方法接受 double 进度值、 uint 持续时间(以毫秒为单位)和 Easing 枚举值,并返回 Task<bool>。 以下示例展示了如何对 ProgressBar 进行动画处理:

// animate to 75% progress over 500 milliseconds with linear easing
await progressBar.ProgressTo(0.75, 500, Easing.Linear);

有关 Easing 枚举的详细信息,请参阅缓动函数