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後,達成的結果與將物件的Window屬性設定Visibility為 Visible一樣。 不過,從時間點上來看,兩者之間有差異。
呼叫 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 執行完成後才會被觸發。