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 屬性 Window 設定 Visibility 為 相同的結束結果。 不過,這兩者與計時觀點之間有差異。

呼叫 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 的方法完成執行之後。

適用於

另請參閱