Anatomy of the Windows 7 taskbar - Progress





4.00/5 (3 votes)
Anatomy of the Windows 7 taskbar - Progress
Ever noticed the subtle progress overlay while downloading something from the internet? With Windows 7’s new taskbar, applications can visually display their progress on the taskbar!
We first need to set the mode:
TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal);
The Windows 7 taskbar has 5 possible states:
NoProgress
- No progress is displayedIndeterminate
- The progress is indeterminate (marquee)Normal
- Normal progress is displayedError
- An error occurred (red)Paused
- The operation is paused (yellow)
If the state is changed to Normal
, then you can also set the value:
TaskbarManager.Instance.SetProgressValue(50, 100);
Easy? Isn't it?
What would a post be without trying to make it just a little easier for the WPF developers? I also created an attached property that auto-magically links a WPF ProgressBar
to the Windows 7 taskbar…
Here is my very simple demo:
<Window x:Class="ProgressDemo.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:="clr-namespace:ProgressDemo"
Title="ProgressDemo" Height="100" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Slider Minimum="0" Maximum="100" x:Name="source" Grid.Row="0" />
<ProgressBar Minimum="0" Maximum="100" Grid.Row="1" Height="20"
Value="{Binding ElementName=source, Path=Value}"
local:Win7.ShowProgressInTaskbar="True" />
</Grid>
</Window>
As you can see from this XAML, I created a Slider
and bound it to the ProgressBar
. To make the ProgressBar
auto-magically update the Windows 7 taskbar, all we need to do is set the ShowProgressInTaskbar=”True”
!!!