Как мне отобразить отметки на индикаторе выполнения?

StackOverflow https://stackoverflow.com/questions/410651

  •  03-07-2019
  •  | 
  •  

Вопрос

Я загружаю коллекцию файлов, и я хотел бы отобразить прогресс в виде индикатора выполнения.Отобразить общий прогресс просто, установив максимальное значение индикатора выполнения равным общему размеру всех файлов, а текущую позицию - размеру загруженных на данный момент файлов.

Что я хотел бы сделать, так это разделить индикатор выполнения на сегменты, причем каждый раздел представляет отдельный файл в коллекции.

Возможно ли это?Как бы я это сделал?

Это было полезно?

Решение

Если вам известен общий размер файлов, которые будут загружены, и вы знаете общий размер файлов, загруженных на данный момент, то вы можете просто установить .Maximum для общего размера файлов и .Position для общего количества загруженных на данный момент.Не нужно беспокоиться о том, как распределяется размер между файлами.

Или вы имели в виду, что вам нужны галочки на индикаторе выполнения в зависимости от размера каждого файла?

Другие советы

Я думаю, что самым простым способом было бы создать UserControl, поместить на него ProgressBar, переопределить OnPaint() UserControl и нарисовать свои линии.

Я думаю, что с UserControl было бы немного проще иметь дело, чем рисовать прямо на форме.С координатами было бы проще обращаться, плюс их было бы проще повторно использовать в другом приложении.

Установите максимальное значение равным 100.Затем для каждого загруженного файла сделайте 100 *(file_size /total_download_size) и сложите их вместе.Как только вы сложите их значения вместе, установите значение индикатора выполнения.Обновляйте значение каждый раз, когда загрузка файла завершается.

Вы можете использовать два индикатора выполнения, по одному для каждого файла и по одному для общего количества.Или, если вам нужны галочки:Простое решение - добавить несколько строк под или над этой полосой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top