2010-07-13 26 views
2

如果我遇到WPF問題,那麼它總是關注焦點管理。 有些情況下,我的應用程序完全失去焦點,所以另一個應用程序獲得焦點,我的應用程序在後臺。這主要發生在我的應用中的一些窗口將被關閉。 這是一個已知的WPF問題。其他人是否也有類似的問題?WPF應用程序的不穩定焦點

我已經打開another thread這個,但沒有人能幫上忙,也許有點細節。因此,這裏是簡短的版本。

UPDATE

看來,我發現了一個簡單的黑客,有助於防止我在other thread描述的行爲。如果您遇到同樣的問題,請嘗試是否可以幫助您。如果你有一個解釋,有一個賞金開放...

我離開這個職位打開了幾天,可能是有人有一個很好的一般輸入到WPF焦點有問題。也許我不明白它背後的邏輯,但直到我明白,這是IMO確實是WPF最差的部分(IMO是一個非常棒的產品)。如果我必須告訴某人WPF中最近幾年有什麼問題,那就是:Focusmgmt,Focusmgmt和Focusmgmt。

+0

WAG here:更換鍵盤/鼠標。如果你有一個觸摸屏,研究製造商的幽靈點擊。如果您在筆記本電腦上,請更新您的打擊墊驅動程序或完全禁用它。 – Will 2010-07-13 06:23:07

回答

2

對於整個應用程序失去焦點,請確保您在顯示它們之前在所有窗口上設置Owner屬性。

對於在應用程序內部失去焦點的情況,通常會發生這種情況,當您沒有想到的某個控件正在獲取但沒有顯示任何內容(例如某些隨機的StackPanel或用於佈局的網格)時,您必須搜索並添加Focusable="false"

+0

感謝您的提示。我仔細檢查了這一點,但我總是在顯示窗口之前設置好主人。在構建窗口之後,我也嘗試將所有者設置爲絕對的第一個屬性,但它沒有幫助。 – HCL 2010-07-13 14:13:08

+0

我接受了你的答案,因爲這至少是一次嘗試。如果您對某個解決方案感興趣,請參閱我的帖子編輯 - 感謝您的答案 – HCL 2010-07-16 16:43:57

1

+1由於我在我的應用程序中也面臨類似的問題。我正在開發一個類似於VS的應用程序(用戶可以添加(從工具箱)並在Canvas中配置控件)並且在執行各種命令(如刪除等)後,焦點會神祕地丟失。我必須明確使用Canvas.Focus()來重置焦點,有時不起作用。