WPF怎样关闭当前窗口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF怎样关闭当前窗口相关的知识,希望对你有一定的参考价值。

我用下面这段代码打开了一个窗口
TimerSetting form = new TimerSetting();
form.ShowDialog();
之后在新窗口中用:this.close();
系统报如下错误:
错误 4 “AutoOrder.TimerSetting”不包含“hide”的定义,并且找不到可接受类型为“AutoOrder.TimerSetting”的第一个参数的扩展方法“hide”(是否缺少 using 指令或程序集引用?)
怎么办?怎么能在当前窗口上关闭窗口?

WPF关闭当前窗口:
public MainWindow()

InitializeComponent();
//在属性窗口那里貌似找不到这事件,但是可以手动注册
this.Closing += F;


private void F(object o, System.ComponentModel.CancelEventArgs e)

if (MessageBox.Show("关闭", "", MessageBoxButton.YesNo) == MessageBoxResult.No)
e.Cancel = true;
参考技术A this.DialogResult = true; // false;

追问

谢了,上午的问题就是你回答的,给力啊、、
顺便问一下,怎么禁用关闭按钮(红X)呢?

追答

这个需要用到 Windows 的 API

建议用比较简单的方法,就是使用 Window_Closing 事件

private void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)

    // Cancel 参数可以这样理解: 是否取消关闭窗口
    // 所以,true 不关闭 false 关闭
    e.Cancel = true;
            
    // 可以用参数或表达式判断是否满足条件
    // 然后再决定是否关闭窗口

本回答被提问者采纳

关于wpf中按钮关闭原窗口,开启新窗口

为什么在click事件中先写this.hide() ,再写开启窗口操作可以实现。而 如果先开启窗口, 再this.hide() 就实现不了。。 是this的问题吗。

参考技术A 你的分类应该选择编程

以上是关于WPF怎样关闭当前窗口的主要内容,如果未能解决你的问题,请参考以下文章

关于wpf中按钮关闭原窗口,开启新窗口

wpf关闭主窗口询问“退出”的问题

怎样用JS实现关闭当前窗口

怎样用JS实现关闭当前窗口

WPF主窗口按下按钮,关闭当前窗口,切换到另一窗口

在当前工作的监视器上保留 WPF 窗口(在多监视器设置中)[关闭/重复]