c# - "WPF UserControl.Unloaded"选项卡更改与卸载

标签 c# .net wpf

我有一个 wpf 用户控件,它显示一些创建/处置成本高昂的非托管资源。

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

我想做的是以某种方式确定,在 UnLoaded 事件中,控件是否仍然有效,但没有为其构建可视化树。

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

最佳答案

Unloaded 事件是释放非托管资源的错误位置。
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/

相关文章:

c# - Hashtable、Dictionary 和 KeyValuePair 有什么区别?

c# - 将一个对象分配给同一类的另一个对象

.net - 在 VB.Net 中使用 Enter 键的 Tab 键功能

c# - 多次在字符串中添加一个字符串

c# - 以编程方式更改 StackPanel 在 Canvas 上的位置

c# - 我们可以在 ASP.NET Web 应用程序项目中使用 WPF 控件吗?

c# - C# 中新启动进程的窗口显示在我当前打开的窗口后面

c# - C# 中使用 System.Threading.Timer 的延迟队列

.net - 一些旧代码的线程问题

.net - 为什么这个 WPF 窗口没有调整其大小为 SizeToContent ="WidthAndHeight"的内容?