将ICDBurn对话框设置为modal或always-on-top

时间:2017-01-27 10:28:10

标签: c# wpf winapi

我有一个使用ICDBurn接口的WPF应用程序将一些数据刻录到磁盘上。 调用ICDBurn::Burn后,会显示一个对话框,用户在处理此对话框之前不应继续使用该应用程序,这不是默认行为。 我尝试将IntPtr.Zero以及应用程序主窗口句柄作为父ICDBurn::Burn传递,但结果是一样的。

所以我希望这个对话框是模态的,但我也愿意将这个对话框设置为总是在顶部。

作为第一步,我想我需要一个对话框窗口的句柄。我试过EnumChildWindows但没有在那里找到对话框。 如何将此对话框设置为模态?

编辑: 根据IInspectable的评论,我可能会将错误的窗口句柄传递给Burn。我正在使用new WindowInteropHelper(Application.Current.MainWindow).Handle,我认为我在应用程序中没有使用其他窗口。

1 个答案:

答案 0 :(得分:0)

啊,WPF ......

要使ICDBurn :: Burn正确打开为模式对话框,必须在UI线程上调用它(使用Application.Current.MainWindow.Dispatcher)。