Opens a window and returns without waiting for the newly opened window to close.
Assembly: PresentationFramework (in PresentationFramework.dll)
Public Sub Show
public void Show()
public: void Show()
member Show : unit -> unit
| Exception | Condition |
|---|---|
| InvalidOperationException |
Show is called on a window that is closing (Closing) or has been closed (Closed). |
When the Window class is instantiated, it is not visible by default. 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. To restrict a user to interacting with a specific window, the window must be opened by calling ShowDialog.
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. This relationship can be established using the Owner property and managed using the OwnedWindows property.
Calling Show achieves the same end result as setting Visibility property of the Window object to Visible. However, there is a difference between the two from a timing perspective.
Calling Show is a synchronous operation that returns only after the Loaded event on the child window has been raised:
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.")
Window w = new Window(); w.Loaded += delegate { System.Console.WriteLine("This is written first."); }; w.Show(); System.Console.WriteLine("This is written last.");
Setting Visibility, however, is an asynchronous operation that returns immediately:
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.")
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.");
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.
The following sample demonstrates how to open a modeless window.
' Initialize window Dim window As New Window() ' Show window modelessly ' NOTE: Returns without waiting for window to close window.Show()
// Initialize window Window window = new Window(); // Show window modelessly // NOTE: Returns without waiting for window to close window.Show();
.NET Framework
Supported in: 4, 3.5, 3.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.