Поделиться через


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 обеспечивает тот же конечный результат, что и для свойства WindowVisibility объекта 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 .

Применяется к

См. также раздел