Site logo
Site logo
Programmieren aus Leidenschaft
Programmieren aus Leidenschaft

Progress Bar


Fortschrittsbalken sind seit je her ein beliebtes Mittel, um Anwender über den Status eines länger dauernden Vorganges zu informieren. Leider erhält der Anwender selten eine Mitteilung nachdem dieser Vorgang abgeschlossen wurde und ihm fehlen sämtliche Informationen, sollte er das Programmfenster minimieren oder zu einer anderen Anwendung wechseln.
Mit Windows 7 gehören auch diese Probleme der Vergangenheit an, denn jetzt kann eine Anwendung auch in der Taskbar einen Fortschrittsbalken anzeigen. Dabei gibt es sogar unterschiedlichen Möglichkeiten der Konfiguration.

Die einfachste Verwendung eines Fortschrittsbalken ist der kontinuierliche Anstieg von einem minimalen auf einen maximalen Wert. Wie auch bei einem normalen Progress Bar, wird das Taskbar-Symbol komplett ausgefüll,t wenn der maximale Wert erreicht ist.
int minValue = 0;
int maxValue = 100;

for (int value = minValue; value < maxValue; value++)
{
        TaskbarManager.Instance.SetProgressValue(value, maxValue);

        // Pause von 10 ms.
        System.Threading.Thread.Sleep(10);
}
stacks_image_F7377FFB-5737-4CBA-9F93-7FB15CF9C349
 Zusätzlich zum regulären grünen Fortschrittsbalken lassen sich durch weitere Farben zusätzliche Informationen an den Anwender übermitteln. 
 
Einen gelben Fortschrittsbalken erreicht man durch den Aufruf von SetProgressState mit dem Parameter TaskbarProgressBarState.Paused.
TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Paused);
stacks_image_DCAF0917-7E27-4827-9FD3-CB268838C9AF
Benötigen Sie indes einen roten Fortschrittsbalken, geht das mit dem folgen Befehl.
TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Error);
stacks_image_F6E501B2-8417-4182-BC24-C4D9907F5B71
Als vierte Variation haben Sie die Möglichkeit, den Progress Bar im Status Indeterminate darzustellen. Jetzt können keine konkreten Werte mehr angezeigt werden, Sie erhalten stattdessen eine kontinuierliche Animation in der Progress Bar in Form eines wandernden Farbfeldes.
TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Indeterminate);
stacks_image_70C4185F-61A6-4931-992B-26363F5D9EE3
Zurücksetzten lässt sich der Progress Bar mit der Anweisung:
TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.NoProgress);