2010-10-20 62 views
0

我有一个命名空间扩展,当用户执行某些操作时,我们在一个单独的窗口中显示一个进度栏(理想情况下,我们应该使用Windows Explorer中内置的进度指示器地址栏,但我被告知我的组件供应商没有API)。我使用Windows Code Pack 1.1来获得.NET API。从Windows资源管理器命名空间扩展中使用Windows 7任务栏进度指示器

此进度窗口是一个常规的Windows窗体窗口。我已经包含以下代码:

... 
using System.Windows.Forms; 
using Microsoft.WindowsAPICodePack.Taskbar; 
... 
public sealed partial class ProgressWindow : Form, IProgressPresenter 
{ 
    ... 
    public int ProgressLevel 
    { 
     get { return JobProgress.Value; } 
     set 
     { 
      JobProgress.Value = value; 

      if (TaskbarManager.IsPlatformSupported) 
      { 
       TaskbarManager.Instance.SetProgressValue(value, 99); 
      } 
     } 
    } 
... 

我想用资源管理器图标来显示进度,但这不会发生。我试图添加处理属性作为参数,但这似乎没有帮助。

回答

0

(理想情况下,我们应该使用内置在地址栏进度指示器 在Windows资源管理器 ,但有人告诉我 没有从我的 组件供应商为一个API)

如果它是一个命名空间扩展你应该使用IProgressDialog接口,其内置浏览器,也诞生支持Windows 7

http://www.codeproject.com/KB/dotnet/winprogressdialog.aspx

012任务栏进度指示器

http://www.codeproject.com/KB/shell/iprogressdialognet.aspx

dmex

+0

谢谢你的提示。你知道是否有可能获得Win7的Windows资源管理器地址栏指示进度? – tronda 2010-10-24 12:30:45

0

您是否设置了状态?

TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Error); 

这会给你一个红色的。暂停为黄色,正常为绿色。

+0

是 - 当进度开始TaskbarProgressBarState.Normal我没有初始化。 – tronda 2010-10-21 06:50:45

相关问题