2011-12-22 11 views
2

ウィンドウが小さくなり、非アクティブになるとサイドに移動するWPFアプリケーションがあります。しかし、私はメッセージボックスが開いている場合、この機能を実行したくありません。 C#コードでダイアログボックスが開いているかどうかを確認する方法はありますか?メッセージボックスが開いているかどうかを確認するWPF C#?

+0

を呼び出すためにラッパーを使用してくださいする必要がありますもしあなたがこれを自分でやったなら、1)知っておくと役立つでしょう。何らかの標準的な振る舞いについて話している場合2)あなたのアプリに特有の振る舞いを防ぐ何らかの方法がある場合、どうしたのですか? –

+0

私は自分でアニメーションをやった。ダイアログボックスが開いているかどうかを確認できれば、アニメーションにそのアニメーションを実行するかどうかを伝えることができます。 – sony

+0

どの種類のダイアログボックスですか? – snurre

答えて

10

静的なクラス/メソッドでMessageBoxへの呼び出しをラップします。これが呼び出された場合、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 

しかし、あなたはどこ窓」は常にメッセージボックス

+0

答えをありがとう... – sony

1

MessageBoxを開くときにどこかにフラグを設定します。 MessageBoxが閉じられたときに設定を解除します。

無効を処理するときにフラグを確認します。

一度に複数のMessageBoxが開いている可能性がある場合は、その考えを与える必要があります。そうでないと、開いていないように見えるようになります。

+0

複数のMessageBoxの場合、カウンタを使用します。 MessageBoxを開くときに値を大きくし、閉じたときに値を小さくします。 – Em1

関連する問題