ProgressBar

.NET Multi-platform App UI (.NET MAUI) ProgressBar は、アプリが長いアクティビティを通じて進行していることをユーザーに示します。 進行状況バーは、double 値で表されるパーセンテージまで塗りつぶされる水平バーです。

ProgressBar の外観はプラットフォームによって異なります。次のスクリーンショットは Android の ProgressBar を示しています。

Screenshot of ProgressBar on Android.

ProgressBar は 2 つのプロパティを定義します。

  • Progress は、現在の進行状況を 0 から 1 の値で表す double 値です。 Progress 0 未満の値は 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 };

警告

CenterStartEndProgressBar などの制約のない水平レイアウト オプションを使用しないでください。 HorizontalOptions の既定値 Fill をそのまま使用します。

次の 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 列挙の詳細については、「イージング関数」を参照してください。