ThumbnailClip
Bewegt man den Mauspfeil über das Taskbar Symbol einer laufenden Anwendung, öffnet sich in einen Fenster eine verkleinerte Vorschau des aktuellen Programmfensters.
Diese, auch als Thumbnail bezeichnete Vorschau, muss aber nicht zwangsläufig immer das komplette Fenster anzeigen.

Man kann den ThumbnailClip der Windows 7 Taskbar
auch so konfigurieren, dass er nur einen Teil des
Fensterinhaltes anzeigt.
In einer WPF Anwendung gestaltet sich das ein wenig kompliziert, da man zur Konfiguration des ThumbnailClip ein Fensterhandle benötigt, das es in Anwendungen dieses Typs nicht so ohne weiteres gibt. Mit Hilfe des WindowInteropHelper ist es aber dennoch möglich, das Fensterhandle zu ermitteln, indem man den folgenden Code dem Fenster hinzufügt.
In einer WPF Anwendung gestaltet sich das ein wenig kompliziert, da man zur Konfiguration des ThumbnailClip ein Fensterhandle benötigt, das es in Anwendungen dieses Typs nicht so ohne weiteres gibt. Mit Hilfe des WindowInteropHelper ist es aber dennoch möglich, das Fensterhandle zu ermitteln, indem man den folgenden Code dem Fenster hinzufügt.
private
IntPtr handle;
public IntPtr Handle
{
get
{
if (this.handle == IntPtr.Zero)
{
System.Windows.Interop.
WindowInteropHelper interopHelper =
new System.Windows.Interop.WindowInteropHelper(this);
this.handle = interopHelper.Handle;
}
return this.handle;
}
}
public IntPtr Handle
{
get
{
if (this.handle == IntPtr.Zero)
{
System.Windows.Interop.
WindowInteropHelper interopHelper =
new System.Windows.Interop.WindowInteropHelper(this);
this.handle = interopHelper.Handle;
}
return this.handle;
}
}
Jetzt gilt es gewünschten Bildausschnitt zu finden,
und der ThumbnailClip ist konfiguriert.
System.Drawing.
Rectangle clippingRectangle = new System.Drawing.Rectangle(
new System.Drawing.Point(0, 5),
new System.Drawing.Size(220, 100));
TaskbarManager.Instance.TabbedThumbnail.SetThumbnailClip(this.Handle, clippingRectangle);
Rectangle clippingRectangle = new System.Drawing.Rectangle(
new System.Drawing.Point(0, 5),
new System.Drawing.Size(220, 100));
TaskbarManager.Instance.TabbedThumbnail.SetThumbnailClip(this.Handle, clippingRectangle);

Möchte man im TumbnailClip ein bestimmtes
Steuerelement anzeigen, muss man diese Postionen
des Objektes nicht in mühevoller Kleinarbeit selbst
ermitteln, sondern kann dies im Programmcode
errechnen lassen. Wieder sind für eine
WPF-Anwendung ein paar mehr Schritt notwendig, da
Werte in andere Formate konvertiert werden müssen.
Im folgenden Code wir die Position der Schaltfläche btnOverlay relativ zum Fenster (this) ermittelt und ans TumbnailClip verwendet.
Im folgenden Code wir die Position der Schaltfläche btnOverlay relativ zum Fenster (this) ermittelt und ans TumbnailClip verwendet.
Point
relativePoint
= btnOverlay.TransformToAncestor(this).Transform(new Point(0, 0));
System.Drawing.Point drawingPoint
= new System.Drawing.Point((int)relativePoint.X, (int)relativePoint.Y);
System.Drawing.Size drawingSize
= new System.Drawing.Size((int)btnOverlay.ActualWidth, (int) btnOverlay.ActualHeight);
System.Drawing.Rectangle clippingRectangle
= new System.Drawing.Rectangle(drawingPoint, drawingSize);
TaskbarManager.Instance.TabbedThumbnail.SetThumbnailClip(this.Handle, clippingRectangle);
= btnOverlay.TransformToAncestor(this).Transform(new Point(0, 0));
System.Drawing.Point drawingPoint
= new System.Drawing.Point((int)relativePoint.X, (int)relativePoint.Y);
System.Drawing.Size drawingSize
= new System.Drawing.Size((int)btnOverlay.ActualWidth, (int) btnOverlay.ActualHeight);
System.Drawing.Rectangle clippingRectangle
= new System.Drawing.Rectangle(drawingPoint, drawingSize);
TaskbarManager.Instance.TabbedThumbnail.SetThumbnailClip(this.Handle, clippingRectangle);
Der angezeigte Bildausschnitt ist immer identisch
mit dem zugehörigen Inhalt des Fensters. Findet im
Bildausschnitt eine Animation statt, sieht man
diese auch im ThumbnailClip.
Als Erweiterung zum ThumbnailClip können im Thumbnailfenster zusätzliche Button angezeigt werden. Diese Steuerelemente vom Typ ThumbnailToolbarButton bieten nicht viele Konfigurationsmöglichkeiten, können aber ein Icon darstellen.
Als Erweiterung zum ThumbnailClip können im Thumbnailfenster zusätzliche Button angezeigt werden. Diese Steuerelemente vom Typ ThumbnailToolbarButton bieten nicht viele Konfigurationsmöglichkeiten, können aber ein Icon darstellen.
ThumbnailToolbarButton
thumbnailButton1
= new ThumbnailToolbarButton(Properties.Resources.favourite, "Favorite");
thumbnailButton1.Click
+= new EventHandler<<span style="color:#217F9F;">ThumbnailButtonClickedEventArgs> (thumbnailButton1_Click);
ThumbnailToolbarButton thumbnailButton2
= new ThumbnailToolbarButton(Properties.Resources.restart, "Restart");
thumbnailButton2.Click
+= new EventHandler<<span style="color:#217F9F;">ThumbnailButtonClickedEventArgs>
(thumbnailButton2_Click);
TaskbarManager.Instance.ThumbnailToolbars.AddButtons(this.Handle, thumbnailButton1, thumbnailButton2);
= new ThumbnailToolbarButton(Properties.Resources.favourite, "Favorite");
thumbnailButton1.Click
+= new EventHandler<<span style="color:#217F9F;">ThumbnailButtonClickedEventArgs> (thumbnailButton1_Click);
ThumbnailToolbarButton thumbnailButton2
= new ThumbnailToolbarButton(Properties.Resources.restart, "Restart");
thumbnailButton2.Click
+= new EventHandler<<span style="color:#217F9F;">ThumbnailButtonClickedEventArgs>
(thumbnailButton2_Click);
TaskbarManager.Instance.ThumbnailToolbars.AddButtons(this.Handle, thumbnailButton1, thumbnailButton2);

Im Gegensatz zu den JumpListItem sind die
ThumbnailToolbarButton auch für die Bedienung der
laufenden Anwendung geeignet und können durch einen
Click-Event direkt im Programmcode Methoden
aufrufen.
nächste Seite
nächste Seite