You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为C#中代码实例化的Window定义关闭行为?

在C#代码实例化Window时绑定Closing事件

当你通过C#代码创建Window实例时,直接通过事件订阅的方式绑定Closing事件即可,和XAML中声明属性的效果完全一致。具体操作如下:

  1. 定义Closing事件的处理方法
    方法签名需符合CancelEventHandler委托要求,接收object类型的sender和CancelEventArgs类型参数:

    private void DataWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        // 在这里编写关闭逻辑,比如阻止窗口关闭、保存数据等
        // 示例:若需阻止关闭,设置 e.Cancel = true;
        // e.Cancel = true;
    }
    
  2. 在Window实例化后订阅事件
    在你的ShowDial方法中,创建Window实例后用+=操作符绑定处理方法:

    public bool ShowDial()
    {
        var window = new Window
        {
            Content = this,
            ResizeMode = ResizeMode.NoResize
        };
        
        // 绑定Closing事件
        window.Closing += DataWindow_Closing;
        
        // 后续逻辑,比如显示窗口
        window.ShowDialog();
        return ...; // 你的返回逻辑
    }
    

补充说明

由于你的this是XAML定义的UserControl实例,上述DataWindow_Closing方法直接写在该UserControl的后台C#代码文件中即可正常工作。

内容的提问来源于stack exchange,提问作者Quizcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 10:15:33