gpt4 book ai didi

c# - 如何为 Windows 7 编写进度条以在任务栏上进行 self 更新?

转载 作者:IT老高 更新时间:2023-10-28 13:02:28 25 4
gpt4 key购买 nike

Windows 7 有一个很棒的新功能,应用程序可以通过状态栏报告当前事件的进度。例如,当使用 Windows 资源管理器复制文件时,任务栏中的应用程序图标顶部会出现一个进度条,并在更新时显示进度。

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

最佳答案

适用于 .NET 4 以下,或任何 .NET 版本的 WinForms

使用 Windows API Code Pack来自微软(正如 Keeron 提到的),它真的很简单。您只需要使用 TaskbarManager。例如

开始进度:

TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal);

更新进度:

TaskbarManager.Instance.SetProgressValue(currentValue, maxProgressValue);

当你完成时,结束进度:

TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.NoProgress);

您可以做更多事情,但这应该可以帮助您入门,并且可能就是您所需要的。

对于带有 WPF 的 .NET 4 及更高版本

您可以使用 System.Windows.Shell.TaskbarItemInfo .例如。在主窗口的 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;

不要忘记,如果您在后台线程上执行“工作”(这对于长时间运行的任务可能是个好主意),您将需要切换回 UI 线程以更新任务栏。

关于c# - 如何为 Windows 7 编写进度条以在任务栏上进行 self 更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1146574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com