TaskbarItemInfo

タスクバーのサムネイルの表示方法を指定できます。

this.TaskbarItemInfo = new TaskbarItemInfo();
this.TaskbarItemInfo.ProgressState = TaskbarItemProgressState.Normal;
this.TaskbarItemInfo.ProgressValue = 0.5;
TaskbarItemProgressState列挙型
列挙子 状態 タスクバーボタンへの効果  
None / NoProgress 進捗なし なし
Indeterminate 不確定 一定しない緑
Normal 正常 指定幅で塗りつぶされた、緑
Error エラー 指定幅で塗りつぶされた、赤
Paused 休止 指定幅で塗りつぶされた、黄
Members - TaskbarItemProgressState Enumeration (System.Windows.Shell) | MSDN

Windows Formアプリケーション

Windows FormではTaskbarItemInfoクラスがサポートされないため、Microsoft.WindowsAPICodePackに含まれるTaskbarManagerクラスを利用します。そのためにはNuGetで、作成者がMicrosoftとなっている[Microsoft.WindowsAPICodePack-Shell]をインストールします。そして、

  • Microsoft.WindowsAPICodePack
  • Microsoft.WindowsAPICodePack.Shell

が参照に追加されているのを確認します。

たとえば次のように記述すると、タスクバーで進捗が50%の状態を表現できます。

TaskbarManager taskbarManager = TaskbarManager.Instance;
taskbarManager.SetProgressState(TaskbarProgressBarState.Normal);
taskbarManager.SetProgressValue(50, 100);
public void SetProgressState(TaskbarProgressBarState state);
public void SetProgressValue(int currentValue, int maximumValue);
  • ProgressStateをNoProgressまたはIndeterminateに設定していても、ProgressValueを指定するとそれが無視されNormalと同等の表示となる
  • ProgressStateの設定にかかわらず、現在の値を0とするとNormalと同等の表示となる
Microsoft Learnから検索