關注我想要的風格TabItem
的‘焦點矩形’。我瞭解到我可以使用FocusVisualStyle
來做到這一點。問題是FocusVisualStyle
creates a sepearate visual tree for an adorner that is drawn on top of the control。我使用複雜的半透明控件和陰影效果,並且我需要顯示下的某個元素的一部分的矩形。繪製一個焦點矩形,只有當控制接收通過鍵盤
我在MSDN上發現,我可以使用IsKeyboardFocused
combined with trigger實現我需要什麼。然而further research已顯示this is not correct,因爲:
鍵盤焦點是指當前正在接收鍵盤輸入的元素。這並不意味着焦點是通過鍵盤導航設置的。
其中一個可能的解決方法可能是:
你可以聽KEY_DOWN事件來檢查導航鍵是否被按下。 WPF控件在內部執行此操作以顯示FocusVisualStyle。
有沒有其他更簡單的方法來實現我想要做的?我並不是真的在創建代碼,監聽事件並處理所有這些許多不同的導航鍵和快捷鍵。
所以我仍然需要使用代碼'TabItem',對吧?除了使用代碼之外,還有其他方法嗎? – Paya 2011-03-20 18:09:42
@Paja - 不幸的是,是的。您需要某種代碼隱藏來檢查MostRecentInputDevice屬性並掛接事件處理程序。 – CodeNaked 2011-03-20 19:45:53
@Paja - 爲了澄清,你不需要在TabItem中「隱藏」代碼(即你不必創建派生類)。您可以使用[附加行爲](http://www.codeproject.com/KB/WPF/AttachedBehaviors.aspx)。 – CodeNaked 2011-03-20 20:12:49