WPF列表框显示SelectedItem之后的下一个元素

Dan*_*rik 1 .net c# wpf listbox listboxitem

我有TextBox和ListBox与一堆元素.

TextBox有KeyDown事件处理程序,其背后的想法是允许用户按下向上和向下键在ListBox内滚动,同时焦点在TextBox上.

当用户多次按下"向下键"时,所选元素成为屏幕上的最后一个可见元素.如果用户已经到达屏幕上可见列表元素的底部,我希望他在所选元素之后也看到下一个元素.

Mar*_*ris 7

查看列表框上的ScrollIntoView方法.您可以使用它来确保所选元素的下一个元素始终可见.

在向下箭头按下:

if (listbox.SelectedIndex < listbox.Items.Count - 1)
    listbox.ScrollIntoView(listbox.Items[listbox.SelectedIndex + 1]);
Run Code Online (Sandbox Code Playgroud)

在向上箭头按:

if (listbox.SelectedIndex > 0)
    listbox.ScrollIntoView(listbox.Items[listbox.SelectedIndex - 1]);
Run Code Online (Sandbox Code Playgroud)