C# 如何解决WPF中由DependencyProperty重写元数据引起的内存泄漏?
我有一个WPF应用程序。我有一个按钮,在其中打开模式窗口,使用ShowDialog()进行此操作。我发现我的模式窗口是内存泄漏的原因,它永远不会被处理,每次都会被分配一个新实例 在深入研究代码并使用ANTS profiler之后,我发现,导致泄漏的原因是以下几行。我正在为我的应用程序使用自定义样式。当我从XAML文件中删除样式时,窗口得到了正确的处理 这个静态构造函数有什么问题?这是泄漏的原因。C# 如何解决WPF中由DependencyProperty重写元数据引起的内存泄漏?,c#,.net,wpf,memory-leaks,C#,.net,Wpf,Memory Leaks,我有一个WPF应用程序。我有一个按钮,在其中打开模式窗口,使用ShowDialog()进行此操作。我发现我的模式窗口是内存泄漏的原因,它永远不会被处理,每次都会被分配一个新实例 在深入研究代码并使用ANTS profiler之后,我发现,导致泄漏的原因是以下几行。我正在为我的应用程序使用自定义样式。当我从XAML文件中删除样式时,窗口得到了正确的处理 这个静态构造函数有什么问题?这是泄漏的原因。 static StyleWindow() { StyleProperty.Overrid
static StyleWindow()
{
StyleProperty.OverrideMetadata(typeof(StyleWindow),new
FrameworkPropertyMetadata(Application.Current.FindResource(typeof(StyleWindow))));
}
//StyleProperty definition
public static readonly DependencyProperty StyleProperty;
非常感谢,感谢您的帮助和建议 为什么要为此使用静态ctor?如果在类中定义依赖属性
StyleProperty
,我不希望在同一属性上看到OverrideMetadata
。您应该能够在注册依赖项属性期间设置元数据。为什么要为此使用静态ctor?如果在类中定义依赖项属性StyleProperty
,我不希望在同一属性上看到OverrideMetadata
。您应该能够在注册依赖项属性期间设置元数据。