События манипуляции в ListBox в wpf4 никогда не генерируются - PullRequest
2 голосов
/ 18 июля 2011

У меня есть элемент управления ListBox, определенный в MainWindow, и его свойство IsManipulationEnabled установлено в значение true. У меня есть события манипуляции (OnManipulationStarting, OnManipulationInertiaStarting и OnManipulationDelta), определенные в MainWindow. Цель здесь - добиться перевода элемента управления Listbox, больше похожего на функцию переворота.

Однако эти события никогда не возникают. Я предполагаю, что события отбора в свою очередь поглощают эти события. Когда я использую itemscontrol, он работает нормально. Но проблема в использовании itemscontrol заключается в том, что я не получаю состояние выбора. Другой вариант - работать с необработанным прикосновением, но манипуляции намного проще.

Почему события Manipulation не запускаются в Listbox?

Заранее спасибо!

1 Ответ

1 голос
/ 27 июля 2011

Шаблон по умолчанию для ItemsControl не содержит ScrollViewer, а ListBox содержит. ScrollViewer обрабатывает эти события, когда PanningMode отличается от None. По умолчанию ScrollViewer связывает несколько своих свойств (например, PanningMode) со свойствами своего шаблонного родителя. Попробуйте установить для присоединенного свойства ScrollViewer.PanningMode значение Нет в ListBox.

<ListBox ScrollViewer.PanningMode="None" />
...