共用方式為


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後,達成的結果與將物件的Window屬性設定VisibilityVisible一樣。 不過,從時間點上來看,兩者之間有差異。

呼叫 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 執行完成後才會被觸發。

適用於

另請參閱