2011-08-13 33 views
3

這一個是有點棘手的解釋。WPF usercontrol不允許lostfocus改變單獨控制

我有一個用戶控件與一些文本框。我也在同一個窗口中的這個用戶控件上方有一個菜單。每當我退出時,LostFocus在文本框上正確觸發,這就是我想要的。奇怪的是,如果我點擊窗口頂部的菜單按鈕,LostFocus事件不會觸發文本框。有沒有一種優雅的方式來確保我的菜單正確地允許LostFocus在任何持續焦點的控件上觸發?

我也想避免必須更新BindingExpressions否則我可能會這樣做N個文本框,這是不可取的。

我無法想象它是如此難以實現這一點..我只是不明白這是如何不起作用的:在大多數其他情況下LostFocus總是發射。

任何想法?謝謝。

+0

菜單不佔用焦點。通過設計。你爲什麼要這樣做? –

+0

重點關注,所以前面的控件可以相應地表現出來。 – Mani5556

+0

如果有一種方法可以做一些菜單命令的OnClick,比如確定有什麼焦點,然後處理它..這是一個不同的挑戰... – Mani5556

回答

0

菜單是WPF還是Winforms/UnManaged?如果兩者中的任何一個失敗焦點事件都不會觸發。這可以對WPF控件造成嚴重破壞,因爲很多時候從菜單執行保存或其他數據功能。爲了解決這個問題,我不得不採取多種方法來解決這個問題。最簡單的方法是在用戶控件本身上實現鼠標離開事件,並在代碼中手動執行任何需要的操作。

相關問題