在WPF中我想改变某些窗口的默认关闭行为,这样当用户点击红色关闭按钮时窗口不会关闭,它只是隐藏(并调用某些方法)。我怎么能这样做?
答案 0 :(得分:35)
尝试在Window.xaml.cs中重写OnClosing
private override void OnClosing( object sender, CancelEventArgs e )
{
e.Cancel = true;
//Do whatever you want here..
}
答案 1 :(得分:14)
This page应该有帮助。
可以处理关闭以检测窗口何时关闭(例如,当调用Close时)。此外,Closing可用于防止窗口关闭。要防止窗口关闭,可以将CancelEventArgs参数的Cancel属性设置为true。
和
如果要在应用程序的生命周期内多次显示和隐藏窗口,并且每次显示时都不想重新实例化窗口,则可以处理Closing事件,取消它并调用隐藏方法。然后,您可以在同一实例上调用Show以重新打开它。
答案 2 :(得分:1)
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
}