Это немного ясно из вашего объяснения, но вы либо ищете:
- навигация для выхода за пределы списка при выборе последнего элемента.
- когда выполняется попытка перехода за пределы последнего элемента в списке, который выводится за пределы окна списка.
Если вашей целью является (1), вероятно, есть разумное решение, используя триггеры и / или некоторую настраиваемую обработку кода для событий на основе выбранного элемента и изменения выбранного элемента. Я должен согласиться с Томом, если это так, и предложить вам не реализовывать это таким образом, поскольку последний элемент никогда не будет доступен для выбора без программного удаления фокуса.
Если вы вместо этого хотите сделать (2), то, по моему опыту, естественным поведением ListBox является переход к следующему элементу управления при нажатии клавиши Tab, и я тестировал это для нижнего клавишу со стрелкой, и она работает так же. Когда я добираюсь до последнего элемента в списке, фокус выскакивает из окна списка и переходит к следующему элементу управления в соответствии с его родительским элементом.
ОБНОВЛЕНИЕ: я должен отозвать свои первоначальные комментарии, так как поведение, описанное выше, не описывает поведение по умолчанию в WPF для ListBox, однако это поведение, которое вы увидите описанным выше поведением (которое, как я полагаю, - это поведение, которое вы ищете) при реализации ItemsControl и указании ItemTemplate. Взгляните на следующий пример.
<ItemsControl ItemsSource="{Binding ElementName=TheWindow, Path=ListOStrings}">
<ItemsControl.Template>
<ControlTemplate TargetType="{x:Type ItemsControl}">
<Border BorderBrush="Magenta"
BorderThickness="1">
<ScrollViewer>
<ItemsPresenter />
</ScrollViewer>
</Border>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Случайно, это просто так, как вы описали, поскольку каждый элемент в списке ведет себя почти как элемент управления, размещенный непосредственно как одноранговый для всех других элементов управления.
person
jpierson
schedule
10.02.2011