从一个父对话框创建多个无模式对话框

时间:2012-06-06 13:50:40

标签: c# wpf

我正在使用C#WPF .NET3.5开发一个UI程序。在我的主窗口中,我有一个按钮。当用户单击此按钮时,它会创建一个无模式对话框。将焦点更改回主窗口并再次单击该按钮将创建另一个无模式对话框。对话框的顺序如下:

M - > C1-> C2 - > C3

其中M是主窗口,C1,C2和C3是顺序中的子窗口。 C1是无模式的(使用Window.Show()方法创建,未设置Owner属性),C2和C3是模态的(使用Window属性属性设置的Window.ShowDialog()方法创建)。我期望用户应该能够从M创建多个C1,C2和C3对话框。

我的问题如下。如果我创建2个C1对话框,一切正常。我可以在M和两个C1对话框中执行所有UI操作。但是,一旦从一个C1对话框创建了C2和C3对话框,我就无法在另一个C1对话框和M对话框中执行任何UI操作。但是,我可以在C3对话框中执行UI操作。

C2对话框包含一个使用DispatcherTimer更新的进度条。完成正在进行的操作后,将从DispatcherTimer的事件处理程序启动C3对话框。

我事先感谢您的宝贵支持。

1 个答案:

答案 0 :(得分:0)

除了使用模态对话框之外,您还需要找到另一种方法将C2和C3设置为始终位于顶部。

来自MSDN

  

必须先关闭或隐藏模态表单或对话框,然后才能使用   继续使用其他应用程序。

尝试将C2和C3的TopMost属性设置为true,并使用Window.Show()代替Window.ShowDialog()