自学内容网 自学内容网

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(例如用户点击了取消按钮或者直接关闭了提示窗口),则取消主窗口的关闭操作。

原文地址:https://blog.csdn.net/qq565221961/article/details/142911354

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!