Hi,
hier direkt ein weiteres Tutorial zum "Windows API Code Pack". Ich werde in diesem mal genauer auf Thumbnails
eingehen. Im Tutorial werde ich C# verwenden, es gibt online allerdings Converter, sodass dieses Tutorial auch in
Visual Basic nutzbar ist (oh Wunder). Los gehts.
1. Was ist das Windows API Code Pack?
Das Windows API Code Pack (ich nenne es jetzt einfach mal "Code Pack") stellt neue Funktionen bereit, die Entwickler in ihre Programme einbinden können.
Diese Funktionen sind nur im Code Pack enthalten und nicht im normalen .NET Framework zu finden. Der Download ist hier
code.msdn.microsoft.com/WindowsAPICodePack
verfügbar und enthält auch Beispiele von Microsoft, ich werde die kompilierten und notwendigen Dateien aber in den Anhang packen
2. Thumbnails
Ein Thumbnail ist die Vorschau, die beim Hover über ein TaskbarIcon normalerweise das Fenster anzeigt.
Ich werde hier darauf eingehen, wie man eigene Buttons einfügt, den angezeigten Ausschnitt festlegt und
die Preview komplett überschreibt.
3. Vorbereitung
Zuerst setzen wir mehrere Verweise, die benötigt werden, und zwar auf
meiner Meinung nach erleichtern werden.
4. Thumbnail-Buttons
Ein Thumbnail-Button ist ein kleiner Button unterhalb der Vorschau des Fensters. Als Beispiel werde ich hier erneut Skype verwenden:
Die Buttons sind normale Buttons, es werden keine Umwege benötigt, um direkt Befehle ans Programm zu senden (d.h. sie haben ein Click-Event).
Zuerst deklarieren wir einen neuen ThumbnailToolBarButton. Der Konstruktor erfordert ein Icon und einen String, das Icon wird angezeigt, der
String stellt den ToolTip dar.
Danach fügen wir den Button zur ThumbnailToolBar hinzu.
Zu beachten ist, dass man hier nur einmal Controls hinzufügen kann, weshalb die Funktion ein ParamsArray akzeptiert,
das bis zu 7 ThumbnailToolBarButtons einbinden kann. Ein einmal eingefügter Button kann ohne den Restart des Programms
nicht mehr entfernt werden. Es besteht zwar die Möglichkeit, ihn unsichtbar zu machen, allerdings bleibt dann eine
leere Bar unterhalb der ThumbnailPreview zu sehen.
Um dem ThumbnailToolBarButton nun seine Funktion zu geben, behandeln wir ganz einfach das Click-Event.
Fertig ist es:
5. Thumbnail-Preview-Clip
Es besteht ebenfalls die Möglichkeit, den im Preview angezeigten Bereich einzuschränken bzw. selbst zu zeichnen (dazu später mehr).
Hier erstmal die erste Möglichkeit, also das Einschränken des anzuzeigenden Bereiches.
Zuerst erstellen wir ein neues Rectangle, um den Bereich festzulegen.
Dann setzen wir den Ausschnitt als Tumbnail. Man könnte das Ganze prinzipiell auch als Einzeiler schreiben.
6. Thumbnail-Custom-Preview
Anstatt den anzuzeigenden Bereich einzugrenzen, gibt es auch die Möglichkeit, das Preview teilweise oder komplett zu
überschreiben.
Hierzu deklarieren wir ein neues Thumbnail und setzen es als Preview.
Danach müssen wir noch das
Bild als Bitmap bereitstellen müssen. Ich nutze hierfür eine anonyme Methode, ein einfacher Handler tut es aber auch.
Die Bitmap generiere ich in einer Funktion namens
Die oben zu sehende Rechnung werde ich jetzt hier nicht weiter erläutern, sie berechnet den Punkt, an dem der Text gesetzt werden muss, um zentriert dargestellt zu werden.
Das Ergebnis sollte so aussehen:
Soviel zu Thumbnails.
Vielen Dank fürs lesen
Grüße,
Nikx
hier direkt ein weiteres Tutorial zum "Windows API Code Pack". Ich werde in diesem mal genauer auf Thumbnails
eingehen. Im Tutorial werde ich C# verwenden, es gibt online allerdings Converter, sodass dieses Tutorial auch in
Visual Basic nutzbar ist (oh Wunder). Los gehts.
1. Was ist das Windows API Code Pack?
Das Windows API Code Pack (ich nenne es jetzt einfach mal "Code Pack") stellt neue Funktionen bereit, die Entwickler in ihre Programme einbinden können.
Diese Funktionen sind nur im Code Pack enthalten und nicht im normalen .NET Framework zu finden. Der Download ist hier
code.msdn.microsoft.com/WindowsAPICodePack
verfügbar und enthält auch Beispiele von Microsoft, ich werde die kompilierten und notwendigen Dateien aber in den Anhang packen
2. Thumbnails
Ein Thumbnail ist die Vorschau, die beim Hover über ein TaskbarIcon normalerweise das Fenster anzeigt.
Ich werde hier darauf eingehen, wie man eigene Buttons einfügt, den angezeigten Ausschnitt festlegt und
die Preview komplett überschreibt.
3. Vorbereitung
Zuerst setzen wir mehrere Verweise, die benötigt werden, und zwar auf
Microsoft.WindowsAPICodePack.dll
, Microsoft.WindowsAPICodePack.Shell.dll
,PresentationCore.dll
und WindowsBase.dll
. Danach importieren wir die nötigen Namespaces, hier sind auch zwei weitere Namespaces angeführt, die die Arbeitmeiner Meinung nach erleichtern werden.
4. Thumbnail-Buttons
Ein Thumbnail-Button ist ein kleiner Button unterhalb der Vorschau des Fensters. Als Beispiel werde ich hier erneut Skype verwenden:
Die Buttons sind normale Buttons, es werden keine Umwege benötigt, um direkt Befehle ans Programm zu senden (d.h. sie haben ein Click-Event).
Zuerst deklarieren wir einen neuen ThumbnailToolBarButton. Der Konstruktor erfordert ein Icon und einen String, das Icon wird angezeigt, der
String stellt den ToolTip dar.
Danach fügen wir den Button zur ThumbnailToolBar hinzu.
Zu beachten ist, dass man hier nur einmal Controls hinzufügen kann, weshalb die Funktion ein ParamsArray akzeptiert,
das bis zu 7 ThumbnailToolBarButtons einbinden kann. Ein einmal eingefügter Button kann ohne den Restart des Programms
nicht mehr entfernt werden. Es besteht zwar die Möglichkeit, ihn unsichtbar zu machen, allerdings bleibt dann eine
leere Bar unterhalb der ThumbnailPreview zu sehen.
Um dem ThumbnailToolBarButton nun seine Funktion zu geben, behandeln wir ganz einfach das Click-Event.
Fertig ist es:
5. Thumbnail-Preview-Clip
Es besteht ebenfalls die Möglichkeit, den im Preview angezeigten Bereich einzuschränken bzw. selbst zu zeichnen (dazu später mehr).
Hier erstmal die erste Möglichkeit, also das Einschränken des anzuzeigenden Bereiches.
Zuerst erstellen wir ein neues Rectangle, um den Bereich festzulegen.
Dann setzen wir den Ausschnitt als Tumbnail. Man könnte das Ganze prinzipiell auch als Einzeiler schreiben.
6. Thumbnail-Custom-Preview
Anstatt den anzuzeigenden Bereich einzugrenzen, gibt es auch die Möglichkeit, das Preview teilweise oder komplett zu
überschreiben.
Hierzu deklarieren wir ein neues Thumbnail und setzen es als Preview.
Danach müssen wir noch das
TabbedThumbnailBitmapRequested
-Event behandeln, in dem wir das neueBild als Bitmap bereitstellen müssen. Ich nutze hierfür eine anonyme Methode, ein einfacher Handler tut es aber auch.
Die Bitmap generiere ich in einer Funktion namens
getBitmap
.C#-Quellcode
- private Bitmap getBitmap()
- {
- Bitmap bitmap = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);
- Graphics g = System.Drawing.Graphics.FromImage(bitmap);
- g.FillRectangle(Brushes.White, new Rectangle(new Point(0, 0), new Size(bitmap.Width, bitmap.Height)));
- g.DrawString("NO.", new Font("Arial", 40), Brushes.Black, new PointF(bitmap.Width / 2 - (g.MeasureString("NO.", new Font("Arial", 40)).Width / 2), bitmap.Height / 2 - (g.MeasureString("NO.", new Font("Arial", 40)).Height / 2)));
- return bitmap;
- }
Die oben zu sehende Rechnung werde ich jetzt hier nicht weiter erläutern, sie berechnet den Punkt, an dem der Text gesetzt werden muss, um zentriert dargestellt zu werden.
Das Ergebnis sollte so aussehen:
Soviel zu Thumbnails.
Vielen Dank fürs lesen
Grüße,
Nikx
"Life isn't about winning the race. Life is about finishing the race and how many people we can help finish the race." ~Marc Mero
Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!
Nun bin ich also auch soweit: Keine VB-Fragen per PM! Es gibt hier ein Forum, verdammt!