如何为C#中代码实例化的Window定义关闭行为?
在C#代码实例化Window时绑定Closing事件
当你通过C#代码创建Window实例时,直接通过事件订阅的方式绑定Closing事件即可,和XAML中声明属性的效果完全一致。具体操作如下:
定义Closing事件的处理方法
方法签名需符合CancelEventHandler委托要求,接收object类型的sender和CancelEventArgs类型参数:private void DataWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { // 在这里编写关闭逻辑,比如阻止窗口关闭、保存数据等 // 示例:若需阻止关闭,设置 e.Cancel = true; // e.Cancel = true; }在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
相关产品推荐
相关产品推荐

