如何为Windows 7编写进度条,以在任务栏上更新自己?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (49)

Windows 7有一个很棒的新特性,应用程序可以通过状态栏报告当前活动的进度。例如,当使用Windows资源管理器复制文件时,进度条被分层在任务栏中的应用程序图标之上,并在更新时显示进度。

公开进度条的API是什么?上面有MSDN文档吗?

提问于
用户回答回答于
用户回答回答于

适用于.NET 4或任何.NET版本中的WinForms

使用Windows API代码包从微软,很简单。只需使用TaskbarManager

TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal);

TaskbarManager.Instance.SetProgressValue(currentValue, maxProgressValue);

当你完成的时候,结束进展:

TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.NoProgress);

用于.NET 4及以上版本

System.Windows.ShellT.askbarItemInfo例如,在主窗口的XAML中,需要添加:

<Window.TaskbarItemInfo>
    <TaskbarItemInfo x:Name="taskBarItemInfo" />
</Window.TaskbarItemInfo>

taskBarItemInfo.ProgressState = TaskbarItemProgressState.Normal;

for (int i = 0; i < 100; i++)
{
    taskBarItemInfo.ProgressValue = i / 100.0;
    Thread.Sleep(50); // whatever the 'work' really is
}

taskBarItemInfo.ProgressState = TaskbarItemProgressState.None;

扫码关注云+社区