Как переопределить операцию закрытия окна по умолчанию?

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

Ответы

Ответ 1

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

private override void OnClosing( object sender, CancelEventArgs e )
{
     e.Cancel = true;
     //Do whatever you want here..
}

Ответ 2

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

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

и

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