WPF UserControl.Unloaded:选项卡切换与卸载的区别

3
我有一个WPF用户控件,显示一些昂贵的未托管资源,这些资源的创建/释放成本很高。
UnLoaded事件是释放未托管资源的理想事件,但由于某些控件创建/销毁可视树,每个实例会被多次调用。
我想做的是在UnLoaded事件中确定控件是否仍然存在且正常运行,但没有为其构建可视树。
这样,如果用户只是通过TabControl导航,或者其他情况,我就可以防止释放/创建未托管资源。

1
请注意以下有关“已卸载”事件的备注:请注意,在应用程序开始关闭后,不会引发“已卸载”事件。当满足ShutdownMode属性定义的条件时,应用程序将关闭。如果您在“已卸载”事件的处理程序中放置了清理代码,例如对于窗口或用户控件,则可能无法按预期调用该代码。 - Clemens
如果我的应用程序关闭,我想要释放的任何内存都会被释放,所以没什么大不了的。谢谢。 - Paul Knopf
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接