Как развернуть главное окно в wpf - PullRequest
0 голосов
/ 23 сентября 2019

Я работаю над приложением WPF, в котором несколько окон подключены к главному окну.Также для WindowStyle установлено значение none, поэтому у меня нет кнопок максимизации и минимизации, поэтому я хочу иметь возможность, когда я закрываю зависимое окно, чтобы вернуться в главное меню.Проблема в том, что когда я закрываю зависимое окно, главное окно по-прежнему свернуто, мне нужно нажать на значок на панели инструментов, чтобы открыть его.Что я делаю не так?

Вот код для перехода в зависимое окно

private void ButtonVlasnici_Click(object sender, RoutedEventArgs e)
        {
            var win = new WinVlasnici();
            win.Show();
            WindowState = WindowState.Minimized;

        }

, и это для возврата к основному:

private void ButtonNazad_Click(object sender, RoutedEventArgs e)
        {
            var win = new MainWindow();

            win.WindowState = WindowState.Maximized;
            Close();
        }

1 Ответ

0 голосов
/ 23 сентября 2019
var win = new MainWindow();

Это неправильно.Вы не должны создавать новые MainWindow из закрытия дочернего окна.

Существует несколько способов решения проблемы.Если вы используете MVVM, что вам и следует (и я не могу этого подчеркнуть), вы можете использовать свой компонент обработчика диалогов, чтобы справиться с ситуацией.Один пример доступен здесь .

Если вы не используете MVVM, вы можете передать ссылку главного окна на ваше дочернее окно через конструктор ребенка, а затем использовать эту ссылку, чтобы развернуть главное окно всобытие ребенка близко.Как то так:

public class Child
  private Window _Main;
  public Child(Window main)
  {
    _Main = main;
  }

  private void ButtonNazad_Click(object sender, RoutedEventArgs e)
  {
    _Main.WindowState = WindowState.Maximized;
    Close();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...