Window.Show 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
開啟視窗,並且不等新開啟的視窗關閉就返回。
public:
void Show();
public void Show ();
member this.Show : unit -> unit
Public Sub Show ()
例外狀況
範例
下列範例示範如何開啟無強制回應視窗。
// 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 的方法完成執行之後。