2014-02-27 58 views
0

我正在開發一個WPF應用程序,我有幾個外圍設備。我正在爲其中一個外設寫一個存根,打開一個模擬外設接口的輔助窗口。這主要是針對開發和QA自動化的目的。允許用戶在模態對話框打開的情況下在輔助窗口中進行交互

我遇到的問題是,我的應用程序通常會在需要通過外設進行用戶輸入時打開模式對話框,並且該對話框阻止訪問存根窗口,這意味着無用戶輸入。

有沒有辦法讓對話允許訪問輔助(存根)窗口,同時仍然阻塞主窗口?我試着把第二個窗口放在一個單獨的UI線程上,但它仍然被阻塞。我目前正在研究多個應用程序域,但我的應用程序通常通過事件與外設交互,並且(從我的閱讀中)不會跨域共享。

回答

0

我從來沒有在WPF中嘗試過,但在Windows窗體中,模態對話隻影響在同一個線程上創建的窗體。如果你在一個單獨的線程上創建你的外設窗口,那麼它將不會被模態對話所阻塞。它會在該窗口和在UI線程上創建的那些窗口之間傳遞數據有點乏味,但絕對不是不可能的。

+0

我終於得到了這個工作,但我必須在第二個線程上使用ShowDialog()而不是Show()。這樣,第二個窗口保持打開狀態,使線程保持活動直到窗口關閉。來自主窗口的對話似乎只阻塞該對話框共享的線程上的窗口。最後,我們已經有了一個強大的框架來處理跨多個線程的事件,所以這不是問題。 – gregsdennis

相關問題