2009-09-04 67 views
8

在我的項目中,我將窗口關閉發送到托盤。我如何給這個動畫效果,即從當前窗口位置移動到托盤。而且相反,意味着雙擊托盤中的notifyicon圖標,窗口即將到來?從托盤動畫窗口移動

回答

1

我在WPF中沒有做太多的工作,所以請牢記這一點。

看來,這可以通過使用DrawAnimatedRects描述here(值得一讀,因爲它突出了一些陷阱)

這已被轉換爲VB2005 here

你可以它封裝建立的東西在Windows API來完成這個功能,但對我來說感覺有點不好意思。另外,我還沒有嘗試直接從WPF項目訪問API - 我假設它是可能的,但不能保證。

接下來最好的建議是調查Windows® API Code Pack for Microsoft® .NET Framework。我還沒有機會深入瞭解這一點,但有可能會以管理方式暴露功能。

簡而言之,包含此功能的其他應用程序看起來像通過API自己處理它,而不是依賴於框架。

0

我發現couplearticles演示了系統托盤的窗口動畫,但他們沒有使用WPF,但應該指出你在正確的方向。

0

當雙擊托盤圖標時將窗口動畫顯示爲視圖非常容易,其實因爲您可以簡單地創建一個WPF動畫或故事板,以將窗口從鼠標當前位置(托盤圖標上方)移動到任何位置想要在屏幕上。

如果你添加一個調整大小和不透明度的動畫給它,你應該會得到一個很好的結果(但是在多個動畫一起運行的情況下使用Storyboard)。

動畫窗口回托盤圖標有點棘手,因爲你不知道它的確切位置,所以你可以讓你的窗口最小化到托盤圖標的大致方向,並讓它淡出在它到達那裏或任何其他方式之前。

如果托盤圖標點擊時第一次打開窗口,或者嘗試使用Windows API獲取真實位置,我不建議您也可以保存該位置。

祝你好運。

0

那麼,你的問題的快速回答將是它使用WPF 不能完成。之所以這樣說,是因爲WPF存在於你正在顯示的窗口的內部,而你正試圖爲Chrome添加動畫效果。

您試圖實現的動畫可以完成,但您需要使用Windows API調用才能完成。 Basiclife的建議是一個完美的開始