我如何在代碼中定義一個容器或專注子項的邏輯焦點,沒有給它鍵盤焦點?如何設置邏輯焦點而不提供鍵盤焦點?
我只想控制哪個孩子會獲得焦點,當控件通過Tab鍵獲得焦點或點擊未觸及孩子的部分容器時,如果它沒有給予(或竊取)實際焦點還沒有它。
我還希望通過鍵盤手勢選擇特定的孩子或用鼠標點擊它仍然是可能的。
我理解WPF在鍵盤焦點和邏輯焦點之間的區別,以及對於具有鍵盤焦點意味着也具有邏輯焦點但具有邏輯焦點的元素的事實並不意味着該元素具有鍵盤焦點。
我也理解附加屬性FocusManager.FocusedElement定義哪些元素在定義此屬性的元素開始的可視化樹中具有邏輯焦點。
我已經意識到,只有當FocusManager.IsFocusScope設置爲true時,纔會使用此屬性,但也適用於容器,如GroupBox。
我做了很多嘗試,噸搜索和閱讀的WPF焦點話題,但沒有成功,到目前爲止,我不明白我失蹤:
FocusManager.SetFocusedElement
也給鍵盤焦點,它我之前暫時改變我的孩子元素設定爲假的屬性Focusable,它只能在第一次的時候沒有孩子收到關注,但不能完小孩後得到集中 一個例子來說明我想要實現的:我有一個簡單的RadioButton組,我想在代碼中動態控制哪些選項會在用戶將選項卡移動到焦點時獲得焦點這個GroupBox(通常是具有isChecked=true
的選項)。
<GroupBox Header="Options" Name="myGroupBox"
KeyboardNavigation.TabNavigation="Once"
KeyboardNavigation. DirectionalNavigation="Cycle" >
<StackPanel>
<RadioButton GroupName="g1" Name="opt1" Content="Option _1"/>
<RadioButton GroupName="g1" Name="opt2" Content="Option _2"/>
<RadioButton GroupName="g1" Name="opt3" Content="Option _3"/>
</StackPanel>
</GroupBox>
最後的評論,我知道如何在實施使用列表框選項的動態列表,該列表的將selectedItem綁定到數據上下文的屬性,然後通過樣式和模板ListBoxItem中綁定器isChecked 單選按鈕的財產項目模板IsSelcted其父一個ListBoxItem的財產,和它的作品,但我的具體情況,我需要ŧ o讓我的RadioButtons直接綁定到我的數據上下文的屬性,我不能將它們同時綁定到列表的IsSelected屬性。
嘗試設置FocusManager.IsFocusScope = true對於GroupBox –
偉大的問題,我正在尋找這個答案我自己... – Doug