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


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 результата, что и свойство параметра 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 выполнение.

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

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