子WPF窗口中的模态对话框

时间:2015-06-12 09:36:58

标签: c# wpf windows modal-dialog

我在多进程C#WPF应用程序中有以下场景:

MainApplication有一个占位符来包含子进程的HWND。

使用SetParent和一些更多的Windows函数(P / Invoke,Windows API)我可以将子应用程序设置为在主应用程序中生效,而不会让用户知道它们是2个进程。 到现在为止一切正常。

问题在于,每次从子进程打开模态对话框时,模态对话框实际上都不是模态的。相反,如果我独立运行子应用程序(相同的exe),模态对话框可以正常工作。

使用Spy ++我意识到如果作为子进程运行(不按预期工作),模式对话框的所有者是桌面,或者如果是独立运行(按预期工作),则运行正确的应用程序窗口。

我也尝试在对话框中使用:: SetParent,但没有任何改变,似乎当从托管进程创建对话框时,WPF无法正确设置它的父级。

我做错了吗?

编辑:当然我尝试使用wpf方法设置对话框的所有者(也是WindowInteropHelper)

0 个答案:

没有答案