ProgressBar

NET Multi-platform App UI (.NET MAUI) ProgressBar indica a los usuarios que la aplicación progresa a través de una actividad prolongada. La barra de progreso es una barra horizontal que se rellena en un porcentaje representado por un valor double.

La apariencia de un elemento ProgressBar depende de la plataforma y la captura de pantalla siguiente muestra un elemento ProgressBar en Android:

Screenshot of ProgressBar on Android.

ProgressBar define tres propiedades:

  • Progress es un valor double que representa el progreso actual como un valor de 0 a 1. Los valores Progress inferiores a 0 se fijarán en 0, los valores mayores que 1 se fijarán en 1. El valor predeterminado de esta propiedad es 0.
  • ProgressColor es un valor Color que define el color de ProgressBar.

Estas propiedades están respaldadas por objetos BindableProperty, lo que significa que pueden ser destinos de los enlaces de datos, y con estilo.

ProgressBar también define un método ProgressTo que anima la barra desde su valor actual hasta un valor especificado. Para más información, consulta Animar ProgressBar.

Crear una ProgressBar

Para indicar el progreso a través de una actividad prolongada, crea un objeto un ProgressBar y establece sus propiedades para definir su apariencia.

En el ejemplo de XAML siguiente se muestra cómo mostrar ProgressBar.

<ProgressBar Progress="0.5" />

El código de C# equivalente es el siguiente:

ProgressBar progressBar = new ProgressBar { Progress = 0.5 };

Advertencia

No uses opciones de diseño horizontal sin restricciones, como Center, Start o End con ProgressBar. Mantén el valor HorizontalOptions predeterminado de Fill

En el siguiente ejemplo de XAML se muestra cómo cambiar el color de ProgressBar.

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

El código de C# equivalente es el siguiente:

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

Animar una ProgressBar

El método ProgressTo anima ProgressBar desde su valor actual Progress a un valor proporcionado a lo largo del tiempo. El método acepta un valor de progreso double, una duración uint en milisegundos, un valor de enumeración Easing y devuelve Task<bool>. En el siguiente ejemplo se muestra cómo animar ProgressBar.

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

Para más información sobre la enumeración Easing, consulta Funciones de aceleración.