我有一个wpf用户控件,它显示一些非托管资源,这些资源创建/处理起来很昂贵。

UnLoaded事件是释放非托管资源的理想事件,但是由于某些控件创建/销毁了可视化树,因此每个实例被多次调用。

我想做的就是以某种方式确定在UnLoaded事件中,该控件是否仍然有效并且没有建立可视化树。

这样,如果用户只是在TabControl中导航,或者可能是这种情况,我就可以防止释放/创建非托管资源。

最佳答案

Unloaded-event是释放非托管资源的错误位置。
http://msdn.microsoft.com/en-us/library/b1yfkh5e(v=vs.100).aspx
当您知道不再需要UserControl并想立即释放不受管资源时
 -调用Dispose()

关于c# - “WPF UserControl.Unloaded”选项卡更改与卸载,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17672580/

10-11 00:56