-1

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

M -> C1 -> C2 -> C3

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

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

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

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

4

1 回答 1

0

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

来自MSDN

在继续使用应用程序的其余部分之前,必须关闭或隐藏模式窗体或对话框。

尝试将C2 和 C3的TopMostWindow.Show()属性设置为 true 并使用而不是Window.ShowDialog().

于 2012-06-06T13:57:57.507 回答