WPF. ListBox выбор элемента с помощью колеса мыши

448
20 мая 2017, 16:29

Добрый день.

Возникла необходимость что бы при прокрутке ListBox не просто скролился, а что бы с помощью колеса можно было выбирать следующий элемент в ListBox.

Пример: ListBox содержит 100 элементов. Выбран, предположим, 10. Начинаем прокручивать колесо мыши, 10 элемент теряет фокус, 11 становиться выбранным и т. д.

Как получить подобный эффект?

Answer 1

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" />

READ ALSO
Двойное хэширование MD5

Двойное хэширование MD5

Делаю авторизацию в приложенииНа сайте пароль дважды шифруется MD5

332
HtmlAgilityPack неправильно парсит

HtmlAgilityPack неправильно парсит

Пытался спарсить страницу на Selenium через XPath, выдает нужную информациюА на HtmlAgilityPack выдает одно и тоже не верное значение

390
SharpDX. Сохранить DeviceContext.Target в Image

SharpDX. Сохранить DeviceContext.Target в Image

Как скопировать содержимое DeviceContextTarget в Image? Мне необходимо замерить время копирование данных в Image

306
Sqlite - Как записать данные в файл?

Sqlite - Как записать данные в файл?

Как правильно записать данные в файл в форматеhtml ?

344