2016-09-16 35 views
1

所以我只是learned,我們可以把一個WPF UserControl到一個windows Form使用ElementHost控制。如果那個窗體控件配置好了,WPF用戶控件也會配置嗎?如果在將要丟棄的Windows窗體中使用WPF用戶控件,該控件是否會被丟棄?

+0

它是一樣的。所有面向對象的編程語言都一樣WPF用戶控件一次性。 – ebattulga

+0

@ebattulga默認情況下,WPF UserControl不是'IDisposable',不會'Dispose'。看看這篇文章:[適當清理WPF用戶控件](http://stackoverflow.com/questions/1550212/proper-cleanup-of-wpf-user-controls)。 ElementHost控件的Dispose方法檢查Child是否爲IDisposable,然後調用Dispose方法。所以如果你需要「處理」任何東西,你應該實現'IDisposable'接口。 –

回答

2

如果你的WPF UserControlIDisposable答案是肯定的,否則不會。

在爲ElementHost類承載WPF UserControlDispose方法的源代碼,你可以看到這一點:

IDisposable child = this.Child as IDisposable; 
if (child != null) 
{ 
    child.Dispose(); 
} 

這意味着Child將被安置,如果它是IDisposable

注意

WPF不依賴於IDisposable接口資源清理。但由於UserControl將用於支持IDisposable模式的ElementHost控件中的Windows窗體項目中,如果您需要執行一些資源清理,則可以依賴IDisposable模式。但如果它是一個WPF項目,則應該使用WPF機制來清理資源。