Поделиться через


Xamarin.Forms ProgressBar

Элемент Xamarin.FormsProgressBar управления визуально представляет ход выполнения в виде горизонтальной полосы, заполненной в процентах, представленных значением float . Класс ProgressBar наследует от View.

На снимках экрана ниже показана страница ProgressBar в iOS и Android.

Снимок экрана: ProgressBar в iOS и Android

Элемент ProgressBar управления определяет два свойства:

  • Progressfloat— это значение, представляющее текущий ход выполнения как значение от 0 до 1. Progress Значения меньше 0 будут зажаты до 0, значения, превышающие 1, будут зажаты до 1.
  • ProgressColor — это объект Color , влияющий на цвет внутренней панели, представляющий текущий ход выполнения.

Эти свойства поддерживаются BindableProperty объектами, что означает, что ProgressBar их можно стильировать и быть целевым объектом привязок данных.

Элемент ProgressBar управления также определяет ProgressTo метод, который анимирует панель из текущего значения в указанное значение. Дополнительные сведения см. в разделе Animate a ProgressBar.

Примечание.

Не ProgressBar принимает обработку пользователей, поэтому при выборе элементов управления с помощью клавиши TAB пропускается.

Создание индикатора хода выполнения

Экземпляр ProgressBar можно создать в XAML. Его Progress свойство определяет процент заливки внутренней цветной полосы. Значение свойства по умолчанию Progress равно 0. В следующем примере показано, как создать экземпляр в ProgressBar XAML с необязательным Progress набором свойств:

<ProgressBar Progress="0.5" />

Можно ProgressBar также создать в коде:

ProgressBar progressBar = new ProgressBar { Progress = 0.5f };

Предупреждение

Не используйте не ограниченные параметры горизонтального макета, например Center, Startили End с ProgressBar. На UWP ProgressBar сворачивается на полосу нулевой ширины. Сохраните значение Fill по умолчанию HorizontalOptions и не используйте ширину Auto при вводе ProgressBar Grid в макет.

Свойства внешнего вида ProgressBar

Свойство ProgressColor определяет внутренний цвет панели, если Progress свойство больше нуля. В следующем примере показано, как создать экземпляр в ProgressBar XAML с набором ProgressColor свойств:

<ProgressBar ProgressColor="Orange" />

Свойство ProgressColor также можно задать при создании в коде ProgressBar :

ProgressBar progressBar = new ProgressBar { ProgressColor = Color.Orange };

На следующих снимках экрана показано ProgressBar свойство, заданное ProgressColor Color.Orange в iOS и Android:

Снимок экрана со стилем ProgressBar в iOS и Android

Анимация индикатора хода выполнения

Метод ProgressTo анимирует ProgressBar значение из текущего Progress значения в предоставленное значение с течением времени. Метод принимает float значение хода выполнения, uint длительность в миллисекундах, Easing значение перечисления и возвращает значение Task<bool>. В следующем коде показано, как анимировать :ProgressBar

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

Дополнительные сведения о Easing перечислении см. в Xamarin.Formsразделе "Упрощение функций".