Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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/4/wpf/12.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
检查消息框是否打开WPF C#?_C#_Wpf - Fatal编程技术网

检查消息框是否打开WPF C#?

检查消息框是否打开WPF C#?,c#,wpf,C#,Wpf,我有一个WPF应用程序,其中窗口变小,如果被停用,则会移到一旁。但是如果窗口上有一个打开的messagebox,我不希望出现此功能。有没有一种方法可以检查是否有任何对话框在C代码中打开?在打开MessageBox时在某个地方设置一个标志。当MessageBox关闭时将其取消设置 处理停用时,请检查标志 如果一次有可能打开多个MessageBox,那么您需要考虑一下,否则一次关闭就会让它看起来没有打开的消息框。将对MessageBox的调用包装在一个静态类/方法中。如果这被调用,则设置消息框打开的

我有一个WPF应用程序,其中窗口变小,如果被停用,则会移到一旁。但是如果窗口上有一个打开的messagebox,我不希望出现此功能。有没有一种方法可以检查是否有任何对话框在C代码中打开?

在打开MessageBox时在某个地方设置一个标志。当MessageBox关闭时将其取消设置

处理停用时,请检查标志


如果一次有可能打开多个MessageBox,那么您需要考虑一下,否则一次关闭就会让它看起来没有打开的消息框。

将对MessageBox的调用包装在一个静态类/方法中。如果这被调用,则设置消息框打开的标志

大概是这样的:

用法:


但是您必须确保始终使用包装器来调用MessageBox

“当窗口变小并被停用时移到一边”——了解1)您自己是否这样做了,或者您正在谈论某种标准行为2)您是如何做到这一点的会很有帮助,以防有某种方法阻止特定于您的应用程序的操作,我自己制作了动画。如果我可以检查对话框是否打开,我可以告诉我的动画是否执行相同的操作。它是哪种类型的对话框?Messagebox.Show(“某些消息”)。如果有多个Messagebox,请使用计数器。消息框打开时增加,关闭时减少。
  public class MessageBoxWrapper
  {
    public static bool IsOpen {get;set;} 

    // give all arguments you want to have for your MSGBox
    public static void Show(string messageBoxText, string caption)
    {
     IsOpen = true;
     MessageBox.Show(messageBoxText, caption);
     IsOpen = false;
    }
  }
MessageBoxWrapper.Show("TEST","TEST");
MessageBoxWrapper.IsOpen