Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用方法关闭所有子窗口_C#_Wpf_Methods - Fatal编程技术网

C# 如何使用方法关闭所有子窗口

C# 如何使用方法关闭所有子窗口,c#,wpf,methods,C#,Wpf,Methods,很难处理这个问题,因为每次我导航到另一个窗体时,我的项目都会在显示窗口内容之前延迟几秒钟或没有响应 如何使用方法关闭所有子窗口 我尝试了this.Close(),但没有成功。您可以使用应用程序类存储指向子窗口的链接。它创建了一个可以从任何地方访问的单态电流 public partial class App : Application { private List<Window> childWindows = new List<Window>(); public L

很难处理这个问题,因为每次我导航到另一个窗体时,我的项目都会在显示窗口内容之前延迟几秒钟或没有响应

如何使用方法关闭所有子窗口


我尝试了
this.Close()
,但没有成功。

您可以使用应用程序类存储指向子窗口的链接。它创建了一个可以从任何地方访问的单态电流

public partial class App : Application
{
  private List<Window> childWindows = new List<Window>();
  public List<Window> ChildWindows{get{return childWindows;}}
}
关闭ChildWindow时,必须从集合中删除链接

    private void ChildWindow_Closed(object sender, EventArgs e)
    {
      ((App)Aplication.Current).Windows.Remove(this) // here 
    }

如果需要,您可以将列表替换为字典,这样就有可能按键搜索

我也是WPF的新手。我使用WinForms和API编程已经多年了,但我最终决定为我的下一个项目打开WPF,我不知道关于它的第一件事,但让我们看看是否能找到答案。到底是什么问题?您无法关闭窗体窗口,或者您正试图在两个窗口之间导航,但导航速度很慢?能否发布一些代码或解释如何设置该程序?我个人从未在WPF程序中打开新窗口时看到任何延迟。您在创建它们时是否进行了大量初始化?
    private void ChildWindow_Closed(object sender, EventArgs e)
    {
      ((App)Aplication.Current).Windows.Remove(this) // here 
    }