Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建模态窗口?_C#_Wpf - Fatal编程技术网

C# 如何创建模态窗口?

C# 如何创建模态窗口?,c#,wpf,C#,Wpf,我是C#和WPF的新手。我想打开一个新窗口,并完全保持在该窗口中锁定父窗口,即类似于MessageBox的内容 我有一个我选择的菜单项,在关闭时调用一个方法,然后创建并显示我的确认关闭窗口。我禁用了父窗口,但它将贯穿我想要等待的整个方法,直到我创建的第二个窗口关闭 void OnClose(object sender, ExecutedRoutedEventArgs args) { //this.IsEnabled = true; ConfirmC

我是C#和WPF的新手。我想打开一个新窗口,并完全保持在该窗口中锁定父窗口,即类似于MessageBox的内容

我有一个我选择的菜单项,在关闭时调用一个方法,然后创建并显示我的确认关闭窗口。我禁用了父窗口,但它将贯穿我想要等待的整个方法,直到我创建的第二个窗口关闭

    void OnClose(object sender, ExecutedRoutedEventArgs args)
    {
        //this.IsEnabled = true;
        ConfirmClose cc = new ConfirmClose();
        this.IsEnabled = false;
        cc.Show();
        cc.Focus();
 // How can I wait here until the windows cc has closed
        this.IsEnabled = true;


    }
如果用户不使用
.Show()
use,则除非关闭表单,否则无法返回父窗口,如下所示:

 ConfirmClose cc = new ConfirmClose();
 cc.ShowDialog();

假设
ConfirmClose
是一个
系统。Windows

我想您可能对OnClosing事件感兴趣,它允许您取消关闭。具体地说,他正在寻找一个阻塞调用。@SLaks,他在寻找一个阻塞调用,以便从用户那里锁定父窗口,直到他关闭
ConfirmClose()
,这就是
ShowDialog()
要做的。这就是我从OP的问题中理解的。谢谢你的反馈,这正是我想要的。@MGA:是的。你的答案完全正确,只是缺少正确的术语。