2013-07-16 190 views
3

我有一個wpf用戶控件,顯示一些非託管資源,這些資源創建/處理的開銷很大。「WPF UserControl.Unloaded」選項卡更改與卸載

UnLoaded事件是釋放非託管資源的理想事件,但由於某些控件創建/銷燬可視化樹,因此每個實例被稱爲多次。

我想要做的是以某種方式確定在UnLoaded事件中,控件是否仍然存在並且沒有爲它構建的可視化樹。

這樣,我可以防止釋放/創建非託管資源,如果用戶只是通過TabControl導航,或者可能情況下。

+1

也請注意,從上卸載的事件說明如下:'注意卸載在應用程序開始關閉後不會引發事件。當由ShutdownMode屬性定義的條件發生時,會發生應用程序關閉。如果您將清理代碼置於Unloaded事件的處理程序中,如Window或UserControl,則可能無法按預期方式調用它。「 – Clemens

+0

如果我的應用程序關閉,那麼我想釋放的任何內存都是免費的,所以沒有biggy。不過謝謝。 –

回答