WPF Listbox with touch inertia pulls down entire window WPF Listbox with touch inertia pulls down entire window wpf wpf

WPF Listbox with touch inertia pulls down entire window


Yes, that default behaviour of the ListBox (or rather, the ScrollViewer inside the default ListBox template) is weird - when I first came across it, I thought it must be a practical joke. In fact, it's really hard to find any documentation about it - but it is briefly mentioned here:

The ManipulationBoundaryFeedback event enables applications or components to provide visual feedback when an object hits a boundary. For example, the Window class handles the ManipulationBoundaryFeedback event to cause the window to slightly move when its edge is encountered.

So, a way around it is to handle ManipulationBoundaryFeedback on the ListBox, and set Handled to true:

<ListBox ManipulationBoundaryFeedback="OnManipulationBoundaryFeedback">              // ...</ListBox>

Code-behind:

private void OnManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e){    e.Handled  = true;}