[Win7] ProgressBar/Ladebalken in der Superbar anzeigen

    • WPF

      [Win7] ProgressBar/Ladebalken in der Superbar anzeigen

      Windows 7 TaskbarItem mit Statusleiste
      Wahrscheinlich haben Sie – sofern Sie Windows 7 benutzen – schon einmal diesen Status- beziehungsweise Ladebalken in der Superbar gesehen. Seit dem .NET Framework 4 gibt es einen entsprechenden Namespace für die Superbar für WPF: System.Windows.Shell.

      In diesem findet sich unter Anderem die Klasse TaskbarItemInfo, welche für ein TaskbarItem, also im Normalfall ein Fenster, den Ladebalken-Status und dessen Fortschritt, so genannte ThubnailButtons (Buttons unter dem Thumbnail), den Thumbnailausschnitt, ein Overlay für das Programm-Icon und die Beschreibung im Tooltip des Thumbnails zuständig ist.

      In diesem Artikel geht es um die Ladebalkeneigenschaften. Damit Sie auf diese zugreifen zu können, benötigen Sie eine TaskbarItemInfo-Instanz, welche der gleichnamigen Eigenschaft eines Windows zugeordnet ist. Dies lässt sich am leichtesten in XAML realisieren:

      XML-Quellcode

      1. <Window usw="...">
      2. <Window.TaskbarItemInfo>
      3. <TaskbarItemInfo/>
      4. </Window.TaskbarItemInfo>
      5. </Window>

      Alternativ können Sie dasselbe natürlich auch im Code-Behind machen:

      VB.NET-Quellcode

      1. Me.TaskbarItemInfo = New Shell.TaskbarItemInfo()
      Die C#-Version des Codes finden Sie hier auf meiner Seite.

      Nun können Sie auf die Eigenschaften ProgressValue und ProgressState des TaskbarItemInfo-Objekts zugreifen, mit denen Sie den Fortschritt und den Status des Ladebalkens beeinflussen können. Die Eigenschaft ProgressState erwartet einen Wert aus der Enumeration System.Windows.Shell.TaskbarItemProgressState. Die folgenden Werte gibt es:
      • None – Es wird kein Ladebalken angezeigt.
      • Normal – Es wird ein normaler, grüner Ladebalken angezeigt.
      • Paused – Es wird ein gelber Ladebalken angezeigt. Dieser ist für Pausen im Ladevorgang gedacht.
      • Error – Es wird ein roter Ladebalken angezeigt. Dieser ist für Fehler gedacht.
      • Indeterminate – Es wird ein durchlaufender, grüner Ladebalken angezeift. Dieser ist für Aktionen gedacht, bei denen der aktuelle Fortschritt nicht angezeigt werden kann.
      Ladebalken mit ProgressState = Indeterminate

      ProgressValue ist ein Double-Wert, der den Prozentsatz als Dezimalzahl angibt, also eine Zahl zwischen 0 und 1. Werte über 1 gelten als 1; Werte unter 0 gelten als 0. Der Wert Double.NaN gilt ebenfalls als 0.

      lg SeriTools
      | Keine Fragen per PN oder Skype.