我有一个简单的问题:
Windows1加载的事件,让它关闭:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Close();
}
向MainWindow添加一个“打开”按钮,实现它的点击事件:
private void button_Click(object sender, RoutedEventArgs e)
{
Window1 w = new Window1();
w.Show();
}
当我启动这个应用程序时,VS2015的UI变为'调试模式',然后我点击窗口右上角的关闭按钮,VS2015的UI回到正常模式。
现在,如果我启动应用程序,单击“打开”按钮,然后Window1将快速显示并关闭,但是,如果我单击MainWindow右上角的关闭按钮,事情就不同了:VS2015将不会恢复正常模式,但保持'调试模式'。所以对我来说,这意味着什么东西挂在那里,我不知道它是什么。
有没有人知道如何解决这个问题?
答案 0 :(得分:5)
这不是答案,而只是我对实际有趣观察的发现。我做了几次测试(打开和关闭Window),然后转储了WPF窗口列表:
foreach (Window w in Application.Current.Windows)
Debug.WriteLine(w.GetType().FullName)
导致:
WpfTest.MainWindow
Microsoft.VisualStudio.DesignTools.WpfTap.WpfVisualTreeService.Adorners.AdornerLayerWindow
Microsoft.VisualStudio.DesignTools.WpfTap.WpfVisualTreeService.Adorners.AdornerLayerWindow
Microsoft.VisualStudio.DesignTools.WpfTap.WpfVisualTreeService.Adorners.AdornerLayerWindow
WpfTap
是Visual Studio的WPF调试器,可帮助调试WPF内容树。
现在,如果不是使用Loaded
事件,而是使用ContentRendered
事件来关闭窗口,它不会发生,并且事情正常。如果我在没有调试的情况下运行.exe也没关系。
因此,似乎Visual Studio在* Window Loaded
事件之后附加了WPF调试器*,如果过早关闭窗口,它会使调试器组件在内存中停留。
答案 1 :(得分:3)