Добрый день.
Возникла необходимость что бы при прокрутке ListBox не просто скролился, а что бы с помощью колеса можно было выбирать следующий элемент в ListBox.
Пример: ListBox содержит 100 элементов. Выбран, предположим, 10. Начинаем прокручивать колесо мыши, 10 элемент теряет фокус, 11 становиться выбранным и т. д.
Как получить подобный эффект?
Code-behind:
private void ListBox_OnPreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
bool isScrollUp = e.Delta > 0;
bool isIndexOutOfRange = (ListBox.SelectedIndex < 1 && isScrollUp) || (ListBox.SelectedIndex > ListBox.Items.Count && !isScrollUp);
if (isIndexOutOfRange) return;
int scrollStep = 1;
if (isScrollUp) scrollStep = -1;
ListBox.SelectedIndex += scrollStep;
ListBox.ScrollIntoView(ListBox.SelectedItem);
e.Handled = true;
}
XAML:
<ListBox x:Name="ListBox"
ItemsSource="{Binding Numbers}"
PreviewMouseWheel="ListBox_OnPreviewMouseWheel" />
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости