2010-08-24 188 views
0

我有一個應用程序(比如App1)。它有一個保存數據項的數據網格。如果我用鼠標右鍵點擊一個數據項,它會彈出一個「Item Details」窗口。但是,App1不直接執行此操作。相反,它與另一個應用程序交談,比如說App2,App2實際上顯示「Item Details」窗口。我的問題如下: 1.啓動App2,然後將其最小化到任務欄。 2.在App1上,用鼠標右鍵點擊一個數據項,彈出「Item Details」窗口。 3.「項目詳細信息」窗口出現在前面,但沒有焦點(標題欄爲灰色)。 App1仍然有重點。 4.如果關閉「項目詳細信息」窗口並再次重複步驟2,此時「項目詳細信息」窗口不僅出現在前面,而且還有焦點。 5.如果我再次執行步驟1,則獲得與步驟3相同的結果。WPF窗口焦點

我還注意到我在某些計算機上遇到了這個問題,但在其他計算機上卻沒有。

我已經嘗試了各種方法,以獲得「項目詳細信息」窗口的重點,但失敗。 Focus()方法返回false。 (事實上​​,首先「Item Details」窗口甚至不會出現在前面,但是當窗口初始化時我將「Topmost」設置爲true,並在內容呈現後將其設置爲false,這迫使窗戶到前面。)

回答

0

我假設。爲什麼你需要設置TopMost?相反,您應該將App2的所有者設置爲App1。

HTH

0

無法將App1設置爲App2的所有者。他們是不相關的應用程序。 App1可以與App2進行通信的唯一方式是通過Windows消息。我試圖將App2設置爲「Item Details」窗口的所有者,但它沒有解決問題。

0

找到了解決這個問題的辦法。 App1必須調用AllowSetForegroundWindow(...)以啓用App2以設置前景窗口。請參閱AllowSetForegroundWindow上的MSDN文檔。