Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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# 关于Window.ShowDialog的一个问题_C#_Wpf_Showdialog - Fatal编程技术网

C# 关于Window.ShowDialog的一个问题

C# 关于Window.ShowDialog的一个问题,c#,wpf,showdialog,C#,Wpf,Showdialog,我有一个自定义的MessageBox类,它继承了Window类,并有一个方法在指定的时间崩溃后自动关闭自己。当我遇到下面描述的情况时,我遇到了这个类的ShowDialog方法的问题 出现一个自定义消息框的ShowDialog,设置为几秒钟后自动关闭 在第一个消息框关闭之前,会出现另一个自定义消息框的ShowDialog,该消息框未设置为自动关闭 当第一个窗口关闭时,第二个窗口的ShowDialog功能无效,即主窗口可选择 无论每个自定义消息框是否来自单个线程,都会发生此问题 我怎样才能避免这种情

我有一个自定义的MessageBox类,它继承了Window类,并有一个方法在指定的时间崩溃后自动关闭自己。当我遇到下面描述的情况时,我遇到了这个类的ShowDialog方法的问题

  • 出现一个自定义消息框的ShowDialog,设置为几秒钟后自动关闭

  • 在第一个消息框关闭之前,会出现另一个自定义消息框的ShowDialog,该消息框未设置为自动关闭

  • 当第一个窗口关闭时,第二个窗口的ShowDialog功能无效,即主窗口可选择
  • 无论每个自定义消息框是否来自单个线程,都会发生此问题


    我怎样才能避免这种情况?如果需要覆盖ShowDialog,怎么可能?

    为什么需要这么多消息框?:
    当模式WPF窗口(通过调用ShowDialog打开的窗口)关闭时,先前激活的窗口将重新激活。如果模态WPF窗口具有所有者窗口(请参见所有者),则当模态WPF窗口关闭时,所有者窗口不会重新激活,除非它是以前激活的窗口。
    @Eric一个用于检查主窗口中文本框的I/O,另一个用于监控后台错误。在所有线程中,所有者设置为System.Windows.Application.Current.MainWindow。为什么不将错误报告从主窗口移到后台?这样它们就会同步