Как переопределить операцию закрытия окна по умолчанию? - PullRequest
17 голосов
/ 09 июня 2010

В WPF я хочу изменить стандартное поведение закрытия некоторого окна, чтобы, когда пользователь нажимает красную кнопку закрытия, окно не закрывалось, оно просто скрывалось (и также вызывал некоторый метод).Как я могу это сделать?

Ответы [ 3 ]

35 голосов
/ 09 июня 2010

Попробуйте переопределить OnClosing в Window.xaml.cs

private override void OnClosing( object sender, CancelEventArgs e )
{
     e.Cancel = true;
     //Do whatever you want here..
}
14 голосов
/ 09 июня 2010

Эта страница должна помочь.

Закрытие может быть обработано, чтобы определить, когда закрывается окно (например, когда вызывается Close). Кроме того, Closing можно использовать для предотвращения закрытия окна. Чтобы предотвратить закрытие окна, можно установить для свойства Cancel аргумента CancelEventArgs значение true.

И

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

1 голос
/ 11 февраля 2019
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
  e.Cancel = true; // this will prevent to close
  `this.Hide();` // it'll hide the window
  // here now you can call any method
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...