Compartilhar via


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:

Captura de tela do ProgressBar no iOS e Android

O ProgressBar controle define duas propriedades:

  • Progress é um float 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 é um Color 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:

Captura de tela do ProgressBar estilizado no iOS e 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.