2011-07-11 91 views
1

我們有這個應用程序使用跨應用程序域(2個應用程序域在同一進程中)。使用Windows窗體實現模型/對話框窗體?

我們需要模仿對話框/模型窗口,它會等待第二個應用程序域的結果,然後才能繼續下一步。第二個應用程序域加載WPF表單(而第一個應用程序域仍然在.Net 2表單上)。我們將不得不使用這種插件方法,以便我們可以利用我們的新WPF而不會破壞我們的舊應用程序。

此刻,我正在使用ManualEventReset在第二個應用程序域完成時發出信號,但這會凍結GUI,因此當我移動對話框/模型窗口時,它不會重新繪製背景。只發生在Windows XP(Windows 7工作正常)

我想知道是否有一種方法來實現模型窗口,以便它仍然會允許消息通過,以便背景可以重新繪製自己。讓我知道如果你需要更多細節

回答

1

你可以打開一個常規的模態窗體,它立即隱藏自己並在另一個線程上打開所需的winforms窗體......所以你可以「死鎖」一個線程,直到你的操作完成阻止你的UI的消息處理...在你的鎖定線程被釋放後,調用你的隱藏窗體close()(Invoke()調用你的UI線程)

+0

這是我們的最後手段:)想知道是否還有比這更好的方法。也許不會......等待別人想出更好的方法 –

+0

你會知道如何創建隱形的WinForm,當我創建一個並做win.ShowDialog()時,它會自動將可見性設置爲true。 –

+0

@anvarbek ...嘗試用一個空的方法 – DarkSquirrel42

相關問題