在我的窗口中,我有listview和其他元素。我如何實現這種焦點行爲:當我按下最後一個listitem上的按鍵時,從另一個元素上的listview中移動焦點,相應地,按住第一個元素上的按鍵將焦點從列表中移開。 所以專注於按下上下鍵可以從其他元素移動到列表中,通過拋出列表並離開列表。列表與其他元素之間的焦點移動。 WPF
在此先感謝。
在我的窗口中,我有listview和其他元素。我如何實現這種焦點行爲:當我按下最後一個listitem上的按鍵時,從另一個元素上的listview中移動焦點,相應地,按住第一個元素上的按鍵將焦點從列表中移開。 所以專注於按下上下鍵可以從其他元素移動到列表中,通過拋出列表並離開列表。列表與其他元素之間的焦點移動。 WPF
在此先感謝。
將KeyboardNavigation.DirectionalNavigation附加屬性設置爲繼續。 ListBox的默認值是Contained。
<ListBox KeyboardNavigation.DirectionalNavigation="Continue"/>
我在我的應用程序中有不同的情況。對於所有控件,我有我的樣式,但在tabcontrol樣式中,我設置了屬性KeyboardNavigation.DirectionalNavigation =「Continue」。 1.這裏應該有可能被選中listviewitems和tabitems。當關注tabitem並按下( - >)tabitem更改時。 2.這裏應該有可能被選中的listboxitems和按鈕。 3.這裏應該有選擇TabItem和TextBlocks的可能性。 而且我可以使用箭頭而不是選項卡。 :
<TabControl Name="tabControl1">
<TabItem Header="PORT" Name="PORT">
<ListView x:Name="ATList"
ItemsSource="{Binding Path=., NotifyOnTargetUpdated=true}"
KeyboardNavigation.DirectionalNavigation="Continue"
KeyUp="ATList_KeyUp" TargetUpdated="ATList_TargetUpdated">
<ListView.View>
<GridView >
<GridViewColumn> ........
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
</TabItem>
.......
</TabControl>
2.
<Grid>
<ListBox ItemsSource="{Binding NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
KeyboardNavigation.DirectionalNavigation="Continue"
ClipToBounds="true" TargetUpdated="List_TargetUpdated" SourceUpdated="List_SourceUpdated">
</ListBox>
<WrapPanel>
<Label .../>
<Label .../>
<Button x:Name="NewBtn"
IsEnabled="{Binding ElementName=UsedMemory, Path = Content, Converter={StaticResource RouteNewConverter}}"
Click="NewRouteBtn_Click"> New </Button>
<Button x:Name="DeleteBtn" Click="DeleteBtn_Click"> Delete </Button>
</WrapPanel>
</Grid>
<TabControl Margin="2,5,2,1" Name="tabControl1" >
<TabItem Header="AV" Name="AV">
<Grid>
<StackPanel x:Name="inf">
<TextBlock />
...
<TextBlock />
</StackPanel>
</Grid>
</TabItem>
</TabControl>
謝謝,但它只是讓listItems中盤旋。如何強制keyboardfocus通過按下上下鍵傳遞給其他元素? – Void 2010-09-01 15:06:20
@Void:將它設置爲Cycle會做到這一點,但繼續應該讓它離開。你是否將ListBox嵌套在另一個可能將其設置爲Cycle的控件中? ListBox可能讓焦點離開,然後父控件再次將其設置回ListBox的開始位置。如果您發佈了一些XAML,它可能會有所幫助。 – Quartermeister 2010-09-01 15:15:06
好的。我已經發布了一些xaml。 – Void 2010-09-03 11:36:09