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 displayed Indeterminate
- The progress is indeterminate (marquee) Normal
- Normal progress is displayed Error
- 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”
!!!
CodeProject
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.