Красивый и удобный индикатор ProgressBar C# Windows Forms визуализирует внутренние процессы приложения позволяя создавать дружелюбные динамичные интерфейсы. Длина цветной полосы интуитивно понятно показывает ход и объем начатой работы, не раздражая пользователей скудностью информативности интерфейса.
К сожалению, индикатор ProgressBar не имеет настроек цвета и практически не адаптируется под желаемые цветовые схемы. Чтобы изменить цвета классического индикатора ProgressBar необходимо написать достаточно много дополнительного программного кода.
Линейный индикатор ProgressLinear - предназначен для встраивания в интерфейсы приложений различных цветовых тем. ProgressLinear имеет два режима работы для точных процессов и оживления интерфейса анимацией. Исходник предлагается в виде класса и встраивается в программный код непосредственным копированием в проект. Исходный код подробно комментируется.
Режим работы по позиции
Режим работы по позиции похож на аналогичный режим работы классического элемента ProgressBar. Длина цветной полосы отображает ход выполняемого процесса, а в середине элемента показывается число процентов выполненной работы. Видимость текста является отключаемым свойством, и в случае необходимости, отображение процентов можно отключить.
Цвет полосы и цвет фона настраиваются открытыми свойствами присвоением любого цвета. Текст процентов имеет двухцветную настройку: цвет на фоне полосы прогресса и цвет на фоне заднего фона элемента. Причем текст имеет не символьные цветовые границы, а пиксельные, это значит, что один символ может быть двухцветным. Граница цветов является динамической и перемещается вместе с правым краем полосы прогресса. Размер символов автоматически корректируется в зависимости от высоты элемента.
Режим анимации
Режим анимации предназначен для длительных вычислений, время которых количественно рассчитать невозможно, например, обращение к базе данных, открытие файла, ожидание выбора пользователя, запуск подготовительных процессов и т.п.
Анимация создается иллюзией бесконечного движения прямоугольников слева направо. Настройками можно создавать наклон прямоугольников, превращая их таким образом в параллелограммы. Цветовые настройки анимации аналогичны режиму по позиции, символы процентов в режиме анимации скрываются.
Индикатор ProgressLinear с настройками цвета
ProgressLinear – линейный индикатор прогресса с расширенными цветовыми настройками для интерфейса C# Windows Forms.
Линейный индикатор обеспечивает два режима работы: по позиции полосы индикатора и режим бесконечной анимации при визуализации работ с неопределенным периодом работы.
Индикатор имеет множество цветовых и функциональных настроек. Настройки определены открытыми свойствами и доступны для изменений в дизайнерском режиме и в программном коде. С помощью данных настроек можно значительно разнообразить цветовую гамму и вид экземпляров индикатора ProgressLinear.
Настройки распределены по трем функциональным категориям: общие настройки, режим по позиции цветной полосы элемента, режим анимации длительных процессов.
В качестве примера ниже показаны некоторые настройки индикатора ProgressLinear программным способом:
public partial class Form1 : Form
{
readonly ProgressLinear progressLine = new ProgressLinear();
public Form1()
{
InitializeComponent();
progressLine.Location = new Point(50, 10);
Controls.Add(progressLine);
InitProgressLinearByPosition()
}
// Настройки режима работы по позиции
private void InitProgressLinearByPosition()
{
progressLine.Maximum = 300;
// Установка режима индикатора по позиции
progressLine.ModeWork = Indicators.OptionsModeWork.ByPosition;
// Настройка цвета фона элемента
progressLine.BGColor = Color.FromArgb(255, 255, 255);
// Настройка цвета полосы-шкалы
progressLine.ProgressColor = Color.FromArgb(0, 0, 255);
// Настройка цвета текста чисел процентов на заднем фоне
progressLine.BGTextColor = Color.White;
// Настройка цвета на полосе прогресса
progressLine.ProgressTextColor = Color.Black;
// Настройка цвета рамки вокруг элемента
progressLine.FrameColor = Color.FromArgb(80, 80, 180);
// Толщина рамки
progressLine.FrameThickness = 4;
// Видимость рамки
progressLine2.FrameVisible = true;
}
// Настройки режима работы анимации
private void InitProgressLinearAnimation()
{
// Установка режима анимации длительных процессов
progressLine.ModeWork = Indicators.OptionsModeWork.Animation;
// Определение ширины интервала между фигурами
// относительно ширины фигуры.
progressLine.IntervalFigures = 0.5F;
// Наклон прямоугольников вправо на 30 градусов.
progressLine.AngleFigures = 30;
// Скорость анимации 5 условных временных единиц
progressLine.AnimationSpeed = 5;
// Ширина фигур
progressLine.WidthFigures = 50;
// Анимация остановлена
progressLine.AnimationEnabled = false;
}
}
Настройки элемента ProgressLinear
Настраивать элемент можно в дизайнерском режиме и программным способом.
Категория ProgressSettings:
OptionsModeWork ModeWork – режим работы индикатора: по позиции или анимация
bool FrameVisible – видимость рамки вокруг элемента
int FrameThickness – толщина рамки
Color FrameColor – цвет рамки
Color ProgressColor – цвет полосы прогресса и прямоугольников анимации
Color BGColor – цвет заднего фона элемента
Категория ProgressPosition:
int Position – положение правого края полосы линейного индикатора
int Maximum – максимальное значение позиции
Color BGTextColor – цвет текста процентов на заднем фоне элемента
Color ProgressTextColor – цвет текста на фоне полосы
bool PercentVisible – видимость числа процентов
Категория ProgressAnimation:
int AngleFigures – наклон фигур в градусах от -80 до 80
int WidthFigures – ширина фигур
float IntervalFigures – промежуток, зазор между фигурами как отношение к их ширине
Линейный индикатор прогресса предоставляется в виде программного кода одноименного класса на языке C# Windows Forms. Класс ProgressLinear поможет вам сократить затраты времени на разработку вспомогательных визуальных элементов.
Индикатор предназначен для непосредственного встраивания в программный код приложения на языке C# интерфейса Windows Forms. ProgressLinear готов к применению, а предложение его в виде программного кода, но не в виде неизменяемой dll библиотеки дает возможность расширения элемента дополнительной функциональностью.
Исходный код представлен тестовым приложением в состав которой входит класс линейного индикатора ProgressLinear. Подробные комментарии объясняют назначение и функции значимых строк программного кода.
Внедрение класса ProgressLinear в программный код приложений
Класс индикатора ProgressLinear подключается к проекту C# прямым копированием папки Indicators в папку проекта приложения. После копирования необходимо пересобрать проект и индикатор ProgressLinear появится в панели элементов.
После добавления элемента на форму приложения, в окне свойств, можно корректировать цветовые и габаритные настройки. Пример внедрения класса ProgressLinear программным способом можно посмотреть выше.
Программный код может быть понижен до версии языка C# 7.3 и адаптироваться под проекты в средах от .NET3.1 и выше, .NET Framework 4.0 и выше.
Доступ к исходнику
Для скачивания исходника необходимо ввести код:
Оплата кода доступа
Стоимость доступа к исходнику - 150 ₽
Сразу после оплаты активируется ссылка на скачивание исходника. Также, на указанный e-mail высылается код доступа. Код действует 2 суток. Внимание: письмо может попасть в папку спама.