C# 如何覆盖默认的窗口关闭操作?

C# 如何覆盖默认的窗口关闭操作?,c#,wpf,window,C#,Wpf,Window,在WPF中,我想更改一些窗口的默认关闭行为,这样当用户点击红色关闭按钮时,窗口不会关闭,它只是隐藏(并调用一些方法)。我该怎么做呢?应该会有帮助 可以处理关闭以检测窗口何时关闭(例如,何时调用Close)。此外,关闭可用于防止窗口关闭。要防止窗口关闭,可以将CancelEventArgs参数的Cancel属性设置为true 及 如果希望在应用程序的生命周期内多次显示和隐藏窗口,并且不希望每次显示窗口时都重新实例化该窗口,则可以处理关闭事件、取消该事件并调用hide方法。然后,可以在同一实例上调用

在WPF中,我想更改一些窗口的默认关闭行为,这样当用户点击红色关闭按钮时,窗口不会关闭,它只是隐藏(并调用一些方法)。我该怎么做呢?

应该会有帮助

可以处理关闭以检测窗口何时关闭(例如,何时调用Close)。此外,关闭可用于防止窗口关闭。要防止窗口关闭,可以将CancelEventArgs参数的Cancel属性设置为true

如果希望在应用程序的生命周期内多次显示和隐藏窗口,并且不希望每次显示窗口时都重新实例化该窗口,则可以处理关闭事件、取消该事件并调用hide方法。然后,可以在同一实例上调用Show以重新打开它


尝试在Window.xaml.cs中重写OnClosing

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

现在我应该接受谁的回答??两者都同样好…在我的C#4.0设置中,这应该是
受保护的override void OnClosing(CancelEventArgs e)
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
}