Window.Show メソッド


ウィンドウを開き、開いたウィンドウが閉じるのを待機せずに制御を戻します。Opens a window and returns without waiting for the newly opened window to close.

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


閉じている途中 (Show()) または閉じた (Closing) ウィンドウに対して Closed が呼び出されている。Show() is called on a window that is closing (Closing) or has been closed (Closed).

次のサンプルは、モードレスウィンドウを開く方法を示しています。The following sample demonstrates how to open a modeless window.

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

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

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


Windowクラスがインスタンス化されると、既定では表示されません。When the Window class is instantiated, it is not visible by default. Show ウィンドウを表示し、ウィンドウが閉じられるのを待たずにすぐに制御を戻します。Show shows a window and returns immediately, without waiting for the window to be closed. そのため、開いているウィンドウでは、ユーザーがアプリケーション内の他のウィンドウと対話できないようにすることはできません。Consequently, the opened window does not prevent users from interacting with other windows in the application. この種類のウィンドウは、 モードレス ウィンドウと呼ばれます。This type of window is called a modeless window. モードレスウィンドウの一般的な例として、ウィンドウ、ツールボックス、およびパレットがあります。Common examples of modeless windows are properties windows, toolboxes, and palettes. 特定のウィンドウとの対話をユーザーに制限するには、を呼び出してウィンドウを開く必要があり ShowDialog ます。To restrict a user to interacting with a specific window, the window must be opened by calling ShowDialog.

を呼び出すことによって開かれたウィンドウは、そのウィンドウを開い Show たウィンドウと自動的に関係がありません。特に、開いているウィンドウは、開いているウィンドウを認識しません。A window that is opened by calling Show does not automatically have a relationship with the window that opened it; specifically, the opened window does not know which window opened it. このリレーションシップは、プロパティを使用して確立 Owner し、プロパティを使用して管理でき OwnedWindows ます。This relationship can be established using the Owner property and managed using the OwnedWindows property.

を呼び出す Show と、 Visibility オブジェクトのプロパティをに設定するのと同じ結果が得 Window られ Visible ます。Calling Show achieves the same end result as setting Visibility property of the Window object to Visible. ただし、タイミングの観点からは2つの違いがあります。However, there is a difference between the two from a timing perspective.

の呼び出し Show は、子ウィンドウのイベントが発生した後にのみを返す同期操作です LoadedCalling Show is a synchronous operation that returns only after the Loaded event on the child window has been raised:

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

Visibilityただし、を設定するのは、すぐにを返す非同期操作です。Setting Visibility, however, is an asynchronous operation that returns immediately:

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 ます。When setting Visibility, any window events you register before you set Visibility may not be raised until after the method in which you set Visibility has completed execution.