WPF 中如何取消关闭窗口?
要取消关闭窗口,可以订阅Closing事件,并在显示MessageBox之后将CancelEventArgs.Cancel设置为true。
xaml示例代码:订阅Closing事件;当然Closing事件也可以通过后台直接订阅
<metro:MetroWindow x:Class="Dump.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:metro="http://metro.mahapps.com/winfx/xaml/controls"
WindowStartupLocation="CenterScreen" WindowState="Normal" ResizeMode="CanMinimize"
IsManipulationEnabled="False" Background="#252526"
Height="400" Width="650" Closing="MetroWindow_Closing" TitleCharacterCasing="Normal">
</metro:MetroWindow>
后台订阅Closing事件,示例代码:
public MainWindow()
{
InitializeComponent();
this.Closing += MetroWindow_Closing;
}
后台执行代码:取消窗口关闭
private void MetroWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (MessageBox.Show("请确定所有导入完成?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.No)
{
e.Cancel = true;
}
}
**************************************************************************************************************