Проверьте, открыто ли окно WPF

Вопрос: Как я могу проверить, открывается ли окно или нет. Является ли это возможным? Например: if (window.IsOpen) { // window is open } else { // window is not open } Ответ №1 Чтобы проверить, отображается ли окно в текущем приложении: if(System.Windows.Application.Current.Windows.Contains(yourWindow)) { // the window has been shown } else { yourWindow.Show(); } Чтобы

Вопрос:

Как я могу проверить, открывается ли окно или нет. Является ли это возможным?

Например:

if (window.IsOpen) { // window is open } else { // window is not open } Ответ №1

Чтобы проверить, отображается ли окно в текущем приложении:

if(System.Windows.Application.Current.Windows.Contains(yourWindow)) { // the window has been shown } else { yourWindow.Show(); }

Чтобы проверить, не окончено ли окно:

if(yourWindow.WindowState != WindowState.Minimized) { // the window is currently not minimized } else { yourWindow.WindowState = WindowState.Normal; // or WindowState.Maximized } Ответ №2

Вы можете сохранить ссылку на окно при его открытии. В этом случае вам действительно не нужно искать его в окнах. В противном случае вам придется получить его на основе типа данного окна.

Window1 instance = Application.Current.Windows.OfType<Window1>().SingleOrDefault(); if (instance !=null) { instance.Show(); }

Если это может быть один из нескольких типов типов окон, и вам нужен общий подход, то это немного более странно. Здесь у меня есть фиксированное значение для моего типа, но вы хотите, чтобы на каждом окне была кнопка, каждая из которых имела тип этого окна.

Type specificType = typeof(Window1); Window instance = null; foreach (Window win in Application.Current.Windows) { if(win.GetType() == specificType) { instance = win; } } if (instance != null) { instance.Show(); }

Оцените статью
Добавить комментарий