У меня есть программа с двумя WPF treeviews, которые позволяют перетаскивать между двумя. Проблема, это может быть раздражающим для открытия / близкие объекты на treeviews, потому что, перемещая мышь всего один пиксель при удержании левой кнопки мыши инициировал перетаскивание / функциональность отбрасывания. Там некоторый путь состоит в том, чтобы указать, как далеко мышь должна переместиться, прежде чем это рассмотрело перетаскивание / отбрасывание?
Просто создайте небольшой буфер в свой код, который определяет, когда запускается перетаскивание.
Для этого есть системный параметр. Если у вас есть
Point down = {where mouse down event happened}
Point current = {position in the MouseMove eventargs}
, значит, мышь переместилась на минимальное расстояние перетаскивания, если
Math.Abs(current.X - down.X) >= SystemParameters.MinimumHorizontalDragDistance ||
Math.Abs(current.Y - down.Y) >= SystemParameters.MinimumVerticalDragDistance)