使用Windows窗体实现模型/对话框窗体

本文关键字:窗体 对话框 模型 实现 Windows 使用 | 更新日期: 2023-09-27 18:01:38

我们有这个应用程序使用跨应用程序域(2个应用程序域在同一进程)。

我们需要模拟对话框/模型窗口,它将等待第二个应用程序域的结果,然后才能继续。第二个应用程序域加载WPF表单(而第一个应用程序域仍然在。net 2表单上)。我们将不得不使用这种插件方法,这样我们就可以在不破坏旧应用程序的情况下利用新的WPF。

目前我正在使用ManualEventReset来指示当第二个应用程序域完成时,但这会冻结GUI,以便当我移动对话框/模型窗口时,它不会重新绘制背景。只在Windows XP上发生(Windows 7可以正常工作)

我想知道是否有一种方法来实现模型窗口,以便它仍然允许消息通过,以便背景可以重新绘制自己。如果你需要更多的细节,请告诉我

使用Windows窗体实现模型/对话框窗体

你可以打开一个常规的模态表单,它会立即隐藏自己,并在另一个线程上打开所需的winforms表单…所以你可以"死锁"一个线程,直到你的操作完成,而不会阻塞你的UI的消息处理…要在锁线程释放后退出模态,调用隐藏表单close()(调用invoke()调用UI线程)