Tja, wie da Name schon sagt, will ich euch zeigen wie ihr die Windows 7 Taskbar Features nutzt:
z.B mit Overlay-Icon und veränderten ProgressBarState
Assembly Kompilieren
Spoiler anzeigen
Zuerst müsst Ihr das Windows API Code Pack runterladen
Dann entpackt Ihr die Zip und öffnet die WindowsAPICodePack.sln im Unterordner WindowsAPICodePack.
Wählt anschließend als Build-Konfiguration "Release" und erstellt die Assembly über "Erstellen / Projektmappe erstellen" oder F7.
Verwenden
Spoiler anzeigen
Erstellt oder Öffnet nun das Projekt in dem ihr die Dll verwenden möchtet.
Fügt einen Verweis auf die WindowsAPICodePack.Shell.dll und die WindowsAPICodePack.dll dem Projekt hinzu (liegen im Ordner "WindowsAPICodePack\WindowsAPICodePack\Shell\bin\Release")
Anschließend in der Klasse, in der Ihr die Funktionalität implementieren möchtet, den Namespace "Microsoft.WindowsAPICodePack.Taskbar" einbinden.
Dann die Reference auf den TaskbarManager holen (Ja, hier brauchen wir keinen Konstruktor -> Singleton )
Im Grunde dient die Reference nur dazu, dass wir nicht immer tippen müssen.
Deshalb:
Weiterhin solltet ihr jeglichen Win7 spezifischen Code in eine Abfrage mit
kapseln
Verwendungsmöglichkeiten:
Taskbar-Icon
Spoiler anzeigen
Fortschrittsbalken anzeigen
Diese Methode erlaubt euch für ein beliebiges Fenster in der Taskleiste eine Art Fortschrittsbalken einzublenden
Die einfachste Überladung ändert den Fortschrittsbalken eurer eigenen Application.
Den beiden anderen Überladungen könnt ihr ein Handle auf das Fenster übergeben, welches manipuliert werden sollen.
z.B. könntet Ihr mit
dem Wordpad einen schönen Fortschrittsbalken verpassen (Sucht euch den wndClass-Namen mit Spy++)
Fortschrittsbalken ändern
Diese Methode erlaubt euch den Status des Fortschrittsbalken zu ändern:
Error -> Rot
Paused -> Gelb
Normal -> Grün
Indeterminate -> Grün fortlaufend
NoProgress -> Fortschrittsbalken ausblenden
Die Anwendung auf andere Fenster erfolgt analog zu SetProgressValue.
OverlayIcon setzen
Diese Methode erlaubt euch ein Icon auf dem Icon der Application zu platzieren (Anzeigebeispiel siehe Anfang)
Der zweite Parameter sollte beschreiben was das aktuelle Icon aussagt/bewirkt. Diese Angabe dient "nur" der Accessibility .
Die Anwendung auf andere Fenster erfolgt analog zu SetProgressValue.
Fenster separat anzeigen
Diese Methode sorgt dafür, dass dem angegebenen Fenster eine andere appID zugeteilt wird.
Dies bewirkt, dass dieses Fenster nicht mehr mit den restlichen Fenstern eurer Anwendung in der Taskleiste gruppiert wird (z.B. für die separate Anzeige eines Fortschrittsbalkens -> Kopierdialog etc.)
Jumplist
Spoiler anzeigen
Neue Jumplist anlegen
Zunächst müsst Ihr für eure Application eine neue Jumplist anlegen. Dies geschieht mit
Grundsätzlich erlaubt euch die Jumplist nur Kommandos oder Links einzufügen, die Ihr auch mit Win + R starten könntet.
Zusätzlich könnt Ihr diese noch in JumpListCustomCategories kategorisieren.
Die Änderungen an der Jumplist werden erst nach einem applist.Refresh() angezeigt.
Neue Kategorie erzeugen
Nachdem die Kategorie erzeugt wurde, kann sie mit jumplist.AddCustomCategories(cat) hinzugefügt werden.
Standardkategorien einblenden
Die Jumplist bietet euch die Möglichkeit, standardisierte Kategorien mit Inhalten einzublenden ("Zuletzt geöffnet" und "Häufig verwendet"). Setzt hierzu einfach die entsprechenden Werte in applist.KnownCategoryToDisplay. Zusätzlich könnt Ihr über applist.KnownCategoryOrdinalPosition die Position der Standardkategorien bestimmen.
Neuen Link in die Jumplist einfügen
Am einfachsten geht dies mit einem JumpListLink. Gebt hier im Konstruktor einfach das Kommando/den Link und eine Bezeichnung an.
In meinen Fall starte ich den Windows Commandprompt. Nach dem erzeugen muss der JumpListLink noch einer Kategorie hinzugefügt werden.
Das Icon für den JumpListLink könnt Ihr über link.IconReference festlegen. z.B. das Standard-Icon des Commandprompts:
Neues ListItem einfügen
JumpListItems stehen für Dokumente die mit eurer Application geöffnet werden können. Hierfür müssen die entsprechenden Dateiendungen mit eurer Application verknüpft sein (Registry).
Das Hinzufügen zur Kategorie ist analog zum JumpListLink.
Neuen Separator einfügen
Um einzelne Einträge zu trennen, könnt Ihr mit
einen neuen Separator einfügen
ThumbnailButtons
Spoiler anzeigen
zunächst müsst ihr einen oder mehrere ThumbnailToolbarButtons, die zum instanzieren ein Icon und einen Tooltiptext benötigen, erstellen z.b:
diese könnt ihr dann mit
dem Preview-Fenster hinzufügen.
Um das Click Event des Buttons abzufangen, müsst Ihr nun noch eine Methode mit folgendem Methodenrumpf anlegen
Und diese per Delegate (AddHandler) dem Button hinzufügen
Aber Achtung:
- die Toolbar unter der Vorschau lässt sich nicht mehr entfernen außer durch eineutes Anzeigen der Form (.Show..)
- Maximal 7 Buttons
- einzelne Buttons können nicht entfernt werden, nur ausgeblendet (.visible)
- Die Buttons werden in der Reihenfolge angeordnet in der sie hinzugefügt werden und können nicht verschoben werden
Weitere Erklärungen Folgen später
Edit:
Tutorial an meinen aktuellen Wissensstand angepasst (ja, 4 Jahre machen einen Unterschied )
z.B mit Overlay-Icon und veränderten ProgressBarState
Assembly Kompilieren
Zuerst müsst Ihr das Windows API Code Pack runterladen
Dann entpackt Ihr die Zip und öffnet die WindowsAPICodePack.sln im Unterordner WindowsAPICodePack.
Wählt anschließend als Build-Konfiguration "Release" und erstellt die Assembly über "Erstellen / Projektmappe erstellen" oder F7.
Verwenden
Erstellt oder Öffnet nun das Projekt in dem ihr die Dll verwenden möchtet.
Fügt einen Verweis auf die WindowsAPICodePack.Shell.dll und die WindowsAPICodePack.dll dem Projekt hinzu (liegen im Ordner "WindowsAPICodePack\WindowsAPICodePack\Shell\bin\Release")
Anschließend in der Klasse, in der Ihr die Funktionalität implementieren möchtet, den Namespace "Microsoft.WindowsAPICodePack.Taskbar" einbinden.
Dann die Reference auf den TaskbarManager holen (Ja, hier brauchen wir keinen Konstruktor -> Singleton )
Im Grunde dient die Reference nur dazu, dass wir nicht immer tippen müssen.
Deshalb:
Weiterhin solltet ihr jeglichen Win7 spezifischen Code in eine Abfrage mit
kapseln
Verwendungsmöglichkeiten:
Taskbar-Icon
Fortschrittsbalken anzeigen
Diese Methode erlaubt euch für ein beliebiges Fenster in der Taskleiste eine Art Fortschrittsbalken einzublenden
Die einfachste Überladung ändert den Fortschrittsbalken eurer eigenen Application.
Den beiden anderen Überladungen könnt ihr ein Handle auf das Fenster übergeben, welches manipuliert werden sollen.
z.B. könntet Ihr mit
dem Wordpad einen schönen Fortschrittsbalken verpassen (Sucht euch den wndClass-Namen mit Spy++)
Fortschrittsbalken ändern
Diese Methode erlaubt euch den Status des Fortschrittsbalken zu ändern:
Error -> Rot
Paused -> Gelb
Normal -> Grün
Indeterminate -> Grün fortlaufend
NoProgress -> Fortschrittsbalken ausblenden
Die Anwendung auf andere Fenster erfolgt analog zu SetProgressValue.
OverlayIcon setzen
Diese Methode erlaubt euch ein Icon auf dem Icon der Application zu platzieren (Anzeigebeispiel siehe Anfang)
Der zweite Parameter sollte beschreiben was das aktuelle Icon aussagt/bewirkt. Diese Angabe dient "nur" der Accessibility .
Die Anwendung auf andere Fenster erfolgt analog zu SetProgressValue.
Fenster separat anzeigen
Diese Methode sorgt dafür, dass dem angegebenen Fenster eine andere appID zugeteilt wird.
Dies bewirkt, dass dieses Fenster nicht mehr mit den restlichen Fenstern eurer Anwendung in der Taskleiste gruppiert wird (z.B. für die separate Anzeige eines Fortschrittsbalkens -> Kopierdialog etc.)
Jumplist
Neue Jumplist anlegen
Zunächst müsst Ihr für eure Application eine neue Jumplist anlegen. Dies geschieht mit
Grundsätzlich erlaubt euch die Jumplist nur Kommandos oder Links einzufügen, die Ihr auch mit Win + R starten könntet.
Zusätzlich könnt Ihr diese noch in JumpListCustomCategories kategorisieren.
Die Änderungen an der Jumplist werden erst nach einem applist.Refresh() angezeigt.
Neue Kategorie erzeugen
Nachdem die Kategorie erzeugt wurde, kann sie mit jumplist.AddCustomCategories(cat) hinzugefügt werden.
Standardkategorien einblenden
Die Jumplist bietet euch die Möglichkeit, standardisierte Kategorien mit Inhalten einzublenden ("Zuletzt geöffnet" und "Häufig verwendet"). Setzt hierzu einfach die entsprechenden Werte in applist.KnownCategoryToDisplay. Zusätzlich könnt Ihr über applist.KnownCategoryOrdinalPosition die Position der Standardkategorien bestimmen.
Neuen Link in die Jumplist einfügen
Am einfachsten geht dies mit einem JumpListLink. Gebt hier im Konstruktor einfach das Kommando/den Link und eine Bezeichnung an.
In meinen Fall starte ich den Windows Commandprompt. Nach dem erzeugen muss der JumpListLink noch einer Kategorie hinzugefügt werden.
Das Icon für den JumpListLink könnt Ihr über link.IconReference festlegen. z.B. das Standard-Icon des Commandprompts:
Neues ListItem einfügen
JumpListItems stehen für Dokumente die mit eurer Application geöffnet werden können. Hierfür müssen die entsprechenden Dateiendungen mit eurer Application verknüpft sein (Registry).
Das Hinzufügen zur Kategorie ist analog zum JumpListLink.
Neuen Separator einfügen
Um einzelne Einträge zu trennen, könnt Ihr mit
einen neuen Separator einfügen
ThumbnailButtons
zunächst müsst ihr einen oder mehrere ThumbnailToolbarButtons, die zum instanzieren ein Icon und einen Tooltiptext benötigen, erstellen z.b:
diese könnt ihr dann mit
dem Preview-Fenster hinzufügen.
Um das Click Event des Buttons abzufangen, müsst Ihr nun noch eine Methode mit folgendem Methodenrumpf anlegen
Und diese per Delegate (AddHandler) dem Button hinzufügen
Aber Achtung:
- die Toolbar unter der Vorschau lässt sich nicht mehr entfernen außer durch eineutes Anzeigen der Form (.Show..)
- Maximal 7 Buttons
- einzelne Buttons können nicht entfernt werden, nur ausgeblendet (.visible)
- Die Buttons werden in der Reihenfolge angeordnet in der sie hinzugefügt werden und können nicht verschoben werden
Weitere Erklärungen Folgen später
Edit:
Tutorial an meinen aktuellen Wissensstand angepasst (ja, 4 Jahre machen einen Unterschied )
Dieser Beitrag wurde bereits 18 mal editiert, zuletzt von „flo.exe“ ()