2013-02-05 112 views
18

我完成了我的應用程序,現在我想將「最小化到系統托盤功能」中。我讀了一篇好文章minimize app to system tray。我意識到這些使用Windows.Form類。使用WPF最小化應用程序到系統托盤(不使用NotifyIcon)

不幸的是,我已經使用Windows Presentation Foundation WPF reference來製作我的應用程序UI。現在我發現WPF不支持NotifyIcon。我看到CodePlex上有一個開源庫,它模擬了NotifyIcon屬性WPF Contrib我還沒有使用它。

現在我正在修復。這裏是我的問題: -

a)我不想爲一個單一組件組合一個第三方庫。

b)我可以在不使用WPF上的NotifyIcon的情況下實現最小化功能嗎?如果是的話,那麼怎麼能有人給我帶領?

或者我應該恢復我的用戶界面回到使用Windows窗體?

+0

編輯您的文章;嘗試添加這樣的鏈接[鏈接文本](http:/ ....... com)。 – 2013-02-05 05:16:59

+1

謝謝!我學到 ! – rockstar

回答

29

如果您將重新考慮您不願使用外部組件,我推薦WPF NotifyIcon。我用過它。它很簡單,並且運作良好。

它不僅僅依賴相應的WinForms組件,而是一個純粹的獨立控件,它利用WPF框架的幾個功能來顯示豐富的工具提示,彈出窗口,上下文菜單和氣球消息。

+0

謝謝@Marksl:很高興知道它很穩定並且適合您。我會等待其他人提出他們的看法。或者如果他們有任何其他建議。 – rockstar

+0

對於我的項目,我打算將所有程序集與ILMerge合併在一起。最後,WPF NotifyIcon非常小,我只是直接在項目中複製代碼 - 可能不是最佳實踐,但它很快。真的沒有太多的代碼。我很想看看是否還有其他方法。 – Marksl

+0

我也在我的項目中使用了這個功能,效果很好。您可以剝離不需要的代碼,只需將最少的必需代碼添加到應用程序中即可。當時我也嘗試了很多東西,這是最好的解決方案。 – akjoshi

2

我今天剛剛遇到這個帖子。

僅供參考,我也解決了這個問題。它工作得很好,唯一一次我遇到了一些問題,偶爾會出現在一些多顯示器設置中。

這是GIT和NuGets之前的事情,如果有興趣,我會將它放在GIT回購中。

CodeProject Article Here

相關問題