Så skapar du en förloppsindikator för Windows 7 aktivitetsfält med .NET

En av de många små nyheterna som gör Windows 7 så mycket trevligare att arbeta med är möjligheten att ha en “progress bar”, eller förloppsindikator (i ett försök att använda en hyfsad svensk översättning), i Windows 7 aktivitetsfält.

Vad det handlar om är att kunna ge användare en direkt visuell återkoppling till att ett program arbetar med något och hur långt det har kommit. Ett bra exempel är filutforskaren som i Windows 7 visar hur mycket som återstår av en filkopiering:

TaskbarProgress

I bilden ovan ser du hur kopieringen hunnit ungefär en tiondel vilket indikeras av den gröna stapeln. Genom en snabb blick ner på aktivitetsfältet kan du se om programmet arbetar, ungefär hur långt det kommit eller om det är klart - utan att behöva växla mellan öppna program. Klart smidigt!

För att komma åt de nya API:erna i Windows 7 som .NET-utvecklare kan du använda dig av ett bibliotek med färdiga funktioner från Microsoft som heter Windows API Code Pack for Microsoft .NET Framework. Där hittar du bland annat ett Shell-projekt som innehåller den statiska klassen Taskbar. Taskbar har en Progressbar-egenskap som du använder för visa pågående aktivitet i ditt program.

Progressbar har ett CurrentValue och ett State. CurrentValue är ett värde mellan 0 och 100 som avgör hur långt programmet har kommit i arbetet, alltså hur långt stapeln ritas ut. 

State är en enumeration som kan vara antingen Error, Indeterminate, NoProgress, Normal eller Paused:

TaskbarButtonProgressState

Indeterminate används när du vill visa att det inte går att avgöra hur långt en process kommit, alltså ett obestämt tillstånd. När State är satt till Indeterminate visas en grön markering som rör sig i sidled över ikonen i en loop tills tillståndet ändras.

Jag har skapat en enkel WPF-applikation som visar på olika tillstånd och hur förloppet indikeras i aktivitetsfältet:

Taskbardemo1

Här kan du ladda hem WPFTaskbarDemo1.