C# Close()方法在调用WPF C时不关闭窗口#

C# Close()方法在调用WPF C时不关闭窗口#,c#,wpf,C#,Wpf,我试图在WPF中关闭一个窗口,但是当我调用close()时它什么都没做 这是我的主类MainWindow中的方法,我在这里调用Close() 我在另一个类中有一个方法,我也传递了这个方法: if (answer.detail == null) { verify = true; } else { verify = false; } check.UserVerified(verify); 当Close()时,我还有一个函数用于不退出应

我试图在WPF中关闭一个窗口,但是当我调用
close()时它什么都没做

这是我的主类
MainWindow
中的方法,我在这里调用
Close()

我在另一个类中有一个方法,我也传递了这个方法:

if (answer.detail == null)    {
  verify = true;                     
}
else    {
  verify = false;
}
check.UserVerified(verify); 
Close()时,我还有一个函数用于不退出应用程序,而是将其推送到系统托盘,即:

protected override void OnClosing(CancelEventArgs e)
{
    e.Cancel = true;
    Hide();
    base.OnClosing(e);
}  
Close()
在MainWindow类的其他方法中工作,但是当我在另一个类的方法中运行MainWindow方法时,它似乎不工作


应该注意的是,在显示控制台行时,它正在输入
if(verified==true){…}
语句

尝试调用
Application.Current.Shutdown()
而不是
Close()

此外,我认为使用以下方法是更好的做法:

if (verified)
而不是:

if (verified == true)
if (answer.detail == null)    {
  verify = true;                     
}
else    {
  verify = false;
}
使用时相同:

verify = answer.detail == null;
而不是:

if (verified == true)
if (answer.detail == null)    {
  verify = true;                     
}
else    {
  verify = false;
}

实际上,出于清晰的原因,很多样式框架都强制使用
==true
。但是在
应用程序.Current.Shutdown()中,您是100%正确的,因为这是确认进程中所有线程都已终止的最佳方法。所以我投了赞成票:)