次の方法で共有


Window.Show メソッド

定義

ウィンドウを開き、開いたウィンドウが閉じるのを待機せずに制御を戻します。

public:
 void Show();
public void Show ();
member this.Show : unit -> unit
Public Sub Show ()

例外

閉じている途中 (Show()) または閉じた (Closing) ウィンドウに対して Closed が呼び出されている。

次の例では、モードレス ウィンドウを開く方法を示します。

// Initialize window
Window window = new Window();

// Show window modelessly
// NOTE: Returns without waiting for window to close
window.Show();
' Initialize window
Dim window As New Window()

' Show window modelessly
' NOTE: Returns without waiting for window to close
window.Show()

注釈

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

を呼び出 Show して開いたウィンドウは、そのウィンドウを開いたウィンドウとの関係を自動的に持つことはありません。具体的には、開いているウィンドウは、開いたウィンドウを認識しません。 このリレーションシップは、 プロパティを使用して確立し、 Owner プロパティを OwnedWindows 使用して管理できます。

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

呼び出し Show は、子ウィンドウでイベントが発生した Loaded 後にのみを返す同期操作です。

Window w = new Window();
w.Loaded += delegate { System.Console.WriteLine("This is written first."); };
w.Show();
System.Console.WriteLine("This is written last.");
Dim w As New Window()
AddHandler w.Loaded, Sub() System.Console.WriteLine("This is written first.")
w.Show()
System.Console.WriteLine("This is written last.")

ただし、 の設定 Visibilityは、すぐにを返す非同期操作です。

Window w2 = new Window();
w2.Loaded += delegate { System.Console.WriteLine("This is written last."); };
w2.Visibility = Visibility.Visible;
System.Console.WriteLine("This is written first.");
Dim w2 As New Window()
AddHandler w2.Loaded, Sub() System.Console.WriteLine("This is written last.")
w2.Visibility = Visibility.Visible
System.Console.WriteLine("This is written first.")

を設定 Visibilityすると、設定する前に登録したウィンドウ イベントは、設定 Visibility した Visibility メソッドの実行が完了するまで発生しない可能性があります。

適用対象

こちらもご覧ください