WPF: как сделать так, чтобы обычное поведение списка при левом перетаскивании использовало среднюю мышь? - PullRequest
2 голосов
/ 09 июня 2010

Я создаю специальный элемент управления списком, который наши дизайнеры хотят настроить некоторыми хитрыми способами.

Одна вещь, которую они хотят видеть, это то, что перетаскивание средней кнопки делает то, что обычно делает перетаскивание левой кнопки (мы перетаскиваем перетаскивание влево на другие вещи.)

Итак, ему нужны две ключевые функции, которые перетаскивание влево используется в реализации по умолчанию ListBox:

  1. Удерживая нажатой кнопку ипри перетаскивании выделение начинается там, где я нажимаю вниз, и продолжается до места, куда я перетаскиваю.
  2. При перетаскивании за пределы области списка он прокручивается, если в этом направлении имеется прокручиваемое пространство.

ДоЯ повторяю эту функцию вручную, есть ли простой способ обмануть ListBox, заставляя его думать, что он получает события перетаскивания левой кнопкой мыши, а вместо этого получает среднюю мышь?

1 Ответ

0 голосов
/ 09 июня 2010

MouseDown поможет вам. Он контролирует всех мышей. Вот хорошая статья об этом. http://blogs.msdn.com/b/nickkramer/archive/2005/06/13/428754.aspx

из статьи:

У нас есть MouseLeftButtonDown и MouseRightButtonDown событий, но нет Событие MouseMiddleButtonDown. Вы можете добраться до средней кнопки с помощью прикрепленное событие Mouse.MouseDown, которое слушает все кнопки мыши, и проверить на args.ChangedButton == MouseButton.Middle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...