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:
ProgressBar define tres propiedades:
Progress
es un valordouble
que representa el progreso actual como un valor de 0 a 1. Los valoresProgress
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.