我有一个WPF应用程序,使用ICDBurn接口将一些数据刻录到磁盘上。调用ICDBurn::Burn
后将显示一个对话框,在处理此对话框之前,用户不应能够继续使用应用程序,这不是默认行为。我尝试将IntPtr.Zero
和应用程序主窗口句柄作为父窗口句柄传递给ICDBurn::Burn
,但结果是一样的。
所以我希望这个对话框是模态的,但我也会满足于将此对话框设置为始终在顶部。
作为第一步,我想我需要对话框窗口的句柄。我尝试EnumChildWindows
但在那里找不到对话框。如何将此对话框设置为模式?
编辑:根据IInspectable的评论,我可能将错误的窗口句柄传递给了Burn。我正在使用new WindowInteropHelper(Application.Current.MainWindow).Handle
,我想我在应用程序中没有使用其他窗口。
啊,WPF...
要使 ICDBurn::Burn 作为模态对话框正确打开,必须在 UI 线程上调用它(使用 Application.Current.MainWindow.Dispatcher
)。