0
点赞
收藏
分享

微信扫一扫

wpf 窗口关闭前 弹出提示窗口

陆公子521 2024-11-01 阅读 9
wpf
  1. 使用 Closing 事件
    • 在 WPF 中,可以处理窗口的Closing事件。当窗口即将关闭时,这个事件会被触发。在该事件处理程序中,可以显示一个提示窗口来询问用户是否真的要关闭窗口。
    • 以下是一个示例代码:

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Closing += MainWindow_Closing;
}

private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
MessageBoxResult result = MessageBox.Show("您确定要关闭窗口吗?", "关闭提示", MessageBoxButton.YesNo);
if (result == MessageBoxResult.No)
{
e.Cancel = true;
}
}
}

  • 在上述代码中,当MainWindow即将关闭时,会弹出一个包含 “您确定要关闭窗口吗?” 消息的MessageBox。如果用户点击 “否” 按钮,通过设置e.Cancel = true来取消窗口的关闭操作;如果用户点击 “是” 按钮,则窗口正常关闭。

  1. 自定义提示窗口
    • 如果不想使用默认的MessageBox,可以创建一个自定义的提示窗口。
    • 首先创建一个新的 WPF 窗口(例如命名为ConfirmCloseWindow),在其中设计布局(如添加一个提示文本和 “是”“否” 按钮等)。
    • 然后在主窗口的Closing事件中使用自定义窗口:

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Closing += MainWindow_Closing;
}

private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
ConfirmCloseWindow confirmWindow = new ConfirmCloseWindow();
bool? result = confirmWindow.ShowDialog();
if (result!= true)
{
e.Cancel = true;
}
}
}

  • 在这个示例中,当主窗口即将关闭时,会创建并显示ConfirmCloseWindow。如果ConfirmCloseWindow关闭时返回的值不是true(例如用户点击了取消按钮或者直接关闭了提示窗口),则取消主窗口的关闭操作。
举报

相关推荐

0 条评论