1

私は WPF アプリケーションを使用しています。最初のウィンドウに 2 つのテキスト ボックスとボタンがあります。いくつかの DB 操作に基づいて、最初のウィンドウのコピーを開く必要があります (可能であれば、新しいタブのように開きます)。同時にアクセスしました。

var MainWindow = new MainWindow();
MainWindow.ShowDialog();

var MainWindow = new MainWindow();
MainWindow.Show();

どちらも私の期待に応えられません。誰か助けてください。

4

2 に答える 2

0

すべてがどのように機能するかを理解できるように、MSDN の関連ページをすべて読むことをお勧めします。

メソッドのShow場合:

ウィンドウを開き、新しく開いたウィンドウが閉じるのを待たずに戻ります。

メソッドのShowDialog場合:

ウィンドウを開き、新しく開いたウィンドウが閉じられたときにのみ戻ります。

Window.Show Methodページの備考セクションから:

Window クラスがインスタンス化されると、デフォルトでは表示されません。Show はウィンドウを表示し、ウィンドウが閉じられるのを待たずにすぐに戻ります。したがって、開いたウィンドウは、ユーザーがアプリケーション内の他のウィンドウと対話することを妨げません。このタイプのウィンドウは、モードレス ウィンドウと呼ばれます。モードレス ウィンドウの一般的な例は、プロパティ ウィンドウ、ツールボックス、およびパレットです。ユーザーが特定のウィンドウと対話するように制限するには、ShowDialog を呼び出してウィンドウを開く必要があります。

Show を呼び出すと、Window オブジェクトの Visibility プロパティを Visible に設定した場合と同じ最終結果が得られます。ただし、タイミングの観点から見ると、両者には違いがあります。

したがって、解決策として、Show代わりにメソッドを使用することをお勧めします。

于 2013-10-02T15:12:27.957 に答える