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 的方法完成执行。