WPF перетаскивают порог расстояния

У меня есть программа с двумя WPF treeviews, которые позволяют перетаскивать между двумя. Проблема, это может быть раздражающим для открытия / близкие объекты на treeviews, потому что, перемещая мышь всего один пиксель при удержании левой кнопки мыши инициировал перетаскивание / функциональность отбрасывания. Там некоторый путь состоит в том, чтобы указать, как далеко мышь должна переместиться, прежде чем это рассмотрело перетаскивание / отбрасывание?

9
задан j0k 4 April 2013 в 10:22
поделиться

2 ответа

Просто создайте небольшой буфер в свой код, который определяет, когда запускается перетаскивание.

  1. Флаг мыши вниз
  2. на перемещении мыши - проверьте на мыши вниз .. Если да, проверьте, если его переместился дальше, чем у указанного вами буфера (3 пикселей, вероятно, хорошо)
  3. , если он имеет, начать бремя.
1
ответ дан 4 December 2019 в 11:05
поделиться

Для этого есть системный параметр. Если у вас есть

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)
18
ответ дан 4 December 2019 в 11:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: