2011-06-09 48 views
6

如何確保在用戶將鼠標置於任務欄圖標上時刷新WPF應用程序(.net 4)的預覽器預覽。
我有一個可視化一些狀態值的應用程序。如果應用程序窗口已最小化並且用戶將鼠標懸停在任務欄按鈕上,則顯示的預覽窗口將顯示該窗口處於活動狀態的窗口的最後一個視圖。不過,我想有一個實際的觀點。
有沒有可能做到這一點?確保WPF任務欄窗口預覽已實現

回答

6

我相信你需要定製預覽,如描述here(在定製預覽部分下)。其中利用了Windows API Code Pack for Microsoft® .NET Framework

一個例子可以發現here,但看起來像:

TabbedThumbnail preview = new TabbedThumbnail(parentForm.Handle, childForm.Handle); 
TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(preview); 
preview.TabbedThumbnailBitmapRequested += (o, e) => 
    { 
     Bitmap bmp = new Bitmap(width, height); 

     // draw custom bitmap... 

     e.SetImage(bmp); 
     e.Handled = true; 
    }; 

又如,可以發現here其中指出:

的CustomWindowsManager類 提供 定製窗口的抽象縮略圖預覽 和實時預覽(peek),包括 設施在收到通知時會收到通知 ew位圖是由 桌面窗口管理器(DWM)和 請求自動獲取窗口的預覽 位圖。

此代碼的下載鏈接是/ t用戶密碼here,其中包括CustomWindowsManager類。這似乎提供了實時預覽。

+0

+1,可能需要RenderTargetBitmap才能獲得Window視覺效果。 – user7116 2011-06-09 20:14:43

1

你可能不能。 Windows 7將打開的窗口的圖形輸入到任務欄的實時預覽中。它無法知道窗口現在看起來像什麼,而它最小化的原因是它完全沒有被繪製。

我想這不是不可能做自定義縮略圖。除CodeNaked的回答外,我還發現this article,甚至包括來自同一應用的多個縮略圖。