The Windows 7 taskbar Adds a lot of other features to us: Jump Lists,window preview,progress bar,overlay Icon and more.
The functionality of the new taskbar makes our operations easier and faster, and Microsoft provides a handy tool for the Windows API Code Pack for. NET Framework to help us complete these developments, adding Microsoft.WindowsAPICodePack.dll and Microsoft.WindowsAPICodePack.Shell.dll.
When you use IE to download files, the taskbar icon synchronizes the current download progress (for example). So how do you achieve this in your application?
Taskbarmanager.setprogressvalue method
In the Taskbarmanager class, there are three different ways to use the Setprogressvalue method to set the current position of the progress bar, where CurrentValue is the parameter of the current position of the progress bar, MaximumValue is the maximum parameter:
//set current window public void setprogressvalue (int currentvalue, int maximumvalue) { Corehelpers.throwifnotwin7 (); Taskbarlist.setprogressvalue (Ownerhandle, Convert.touint32 (currentvalue), Convert.touint3 2 (MaximumValue));} Sets the specified window public void setprogressvalue (int currentvalue, int maximumvalue, INTPTR windowhandle) {corehelpers.throwifnotwin7 (); Taskbarlist.setprogressvalue (WindowHandle, Convert.touint32 (currentvalue), Convert.touint (MaximumValue));} Sets the specified WPF window public void setprogressvalue (int currentvalue, int maximumvalue, System.Windows.Wi Ndow window) {corehelpers.throwifnotwin7 (); Taskbarlist.setprogressvalue (New Windowinterophelper (window)). Handle, Convert.touint32 (CurrentValue), Convert.touint32 (MaximumValue));}
taskbarprogressbarstate progress bar Status
In addition to the common green (normal state), you can also use several other states by invoking enumeration Taskbarprogressbarstate, see the following table:
name |
Description |
Noprogress |
Do not show progress bar |
Indeterminate |
Indeterminate progress bar (in scroll state) |
Normal |
Normal state (green) |
Error |
Error status (red) |
Paused |
Pause status (Yellow) |
Taskbarmanager.setprogressstate Method
How do I set the above status for a progress bar? Of course Taskbarmanager also provides three different ways to use the Setprogressstate method to set the status of the progress bar accordingly:
Sets the current window status public void Setprogressstate (Taskbarprogressbarstate state) { corehelpers.throwifnotwin7 (); Taskbarlist.setprogressstate (Ownerhandle, (Tbpflag) state);} Sets the specified window state of public void Setprogressstate (Taskbarprogressbarstate, IntPtr windowhandle) { Corehelpers.throwifnotwin7 (); Taskbarlist.setprogressstate (WindowHandle, (Tbpflag) state);} Sets the specified WPF window state of public void Setprogressstate (taskbarprogressbarstate, System.Windows.Window window) { Corehelpers.throwifnotwin7 (); Taskbarlist.setprogressstate ( New Windowinterophelper (window)). Handle, (Tbpflag) state);}
Effect Demo
The following method can be used only in the program to achieve the control of the progress bar, the following code through the slider to adjust the current value of the progress bar:
<summary>///Initializing progress bar status///</summary>private void Initprogressstates () { _ PROGRESSBARSTATUS.ITEMS.ADD (taskbarprogressbarstate.noprogress); _progressbarstatus.items.add (taskbarprogressbarstate.indeterminate); _progressbarstatus.items.add (taskbarprogressbarstate.normal); _progressbarstatus.items.add (taskbarprogressbarstate.error); _progressbarstatus.items.add (taskbarprogressbarstate.paused); _progressbarstatus.selectedindex = 2;} <summary>///the progress bar value changes, change the taskbar progress and Status///</summary>private void _progressslider_valuechanged (object sender, EventArgs e) { TaskbarManager.Instance.SetProgressValue (_progressslider.value, _progressslider.maximum ); TaskbarManager.Instance.SetProgressState ((taskbarprogressbarstate) _progressbarstatus.selecteditem);}
Normal State Error Status paused State
C # Windows 7 Taskbar Development progress bar (Progress bar)