我的对话框中有一个“网格”面板,其中填充了不同的控件。有些控件是从UserControl类继承的,在销毁控件之前,需要执行一些操作(如任务终止,状态保存等)。
什么事件表明在WinPF中像protected override void OnHandleDestroyed(EventArgs e)
这样的用户控件在WPF中被破坏了?
答案 0 :(得分:3)
UserControl
直到最终被垃圾回收后才被“销毁”。
从元素树中删除FrameworkElement
时会触发一个Unloaded事件。请注意,取决于您的布局和元素的显示方式,同一元素可能会多次触发该事件。
但是没有UserControl
引发的“销毁”事件。当不再有任何托管对象的引用时,所有托管对象都可以进行垃圾回收。
如果出于某种原因需要显式地销毁您的自定义UserControl
,则应考虑实现IDisposable接口,并在使用完实例后显式处置它们。但是WPF不会为您调用Dispose
方法。