Xamarin.Forms ProgressBar
O Xamarin.FormsProgressBar
controle representa visualmente o progresso como uma barra horizontal que é preenchida com uma porcentagem representada por um float
valor. A classe ProgressBar
herda de View
.
As capturas de tela a seguir mostram um ProgressBar
no iOS e no Android:
O ProgressBar
controle define duas propriedades:
Progress
é umfloat
valor que representa o progresso atual como um valor de 0 a 1.Progress
Valores menores que 0 serão fixados em 0, valores maiores que 1 serão fixados em 1.ProgressColor
é umColor
que afeta a cor da barra interna que representa o progresso atual.
Essas propriedades são apoiadas por BindableProperty
objetos, o que significa que podem ProgressBar
ser estilizados e ser o destino de associações de dados.
O ProgressBar
controle também define um ProgressTo
método que anima a barra de seu valor atual para um valor especificado. Para obter mais informações, consulte Animar um ProgressBar.
Observação
O ProgressBar
não aceita manipulação do usuário, portanto, é ignorado ao usar a tecla Tab para selecionar controles.
Criar uma ProgressBar
Um ProgressBar
pode ser instanciado em XAML. Sua Progress
propriedade determina a porcentagem de preenchimento da barra colorida interna. O valor da propriedade padrão Progress
é 0. O exemplo a seguir mostra como criar uma instância de ProgressBar
em XAML com o conjunto de propriedades opcional Progress
:
<ProgressBar Progress="0.5" />
Um ProgressBar
também pode ser criado no código:
ProgressBar progressBar = new ProgressBar { Progress = 0.5f };
Aviso
Não use opções de layout horizontal irrestritas, como Center
, Start
, ou End
com ProgressBar
. Na UWP, o ProgressBar
recolhe para uma barra de largura zero. Mantenha o valor padrão HorizontalOptions
de Fill
e não use uma largura de Auto
ao colocar um ProgressBar
em um Grid
layout.
Propriedades de aparência do ProgressBar
A ProgressColor
propriedade define a cor da barra interna quando a Progress
propriedade é maior que zero. O exemplo a seguir mostra como instanciar um ProgressBar
em XAML com a ProgressColor
propriedade definida:
<ProgressBar ProgressColor="Orange" />
A ProgressColor
propriedade também pode ser definida ao criar um ProgressBar
código in:
ProgressBar progressBar = new ProgressBar { ProgressColor = Color.Orange };
As capturas de tela a seguir mostram a ProgressBar
propriedade com a ProgressColor
definida como Color.Orange
no iOS e no Android:
Animar uma barra de progresso
O ProgressTo
método anima a ProgressBar
partir de seu valor atual Progress
para um valor fornecido ao longo do tempo. O método aceita um valor de float
progresso, uma uint
duração em milissegundos, um valor de Easing
enumeração e retorna um Task<bool>
. O código a seguir demonstra como animar um ProgressBar
:
// animate to 75% progress over 500 milliseconds with linear easing
await progressBar.ProgressTo(0.75, 500, Easing.Linear);
Para obter mais informações sobre a Easing
enumeração, consulte Funções de easing no Xamarin.Forms.