this.dragmove () вмешивается в событие mouseup wpf - PullRequest
0 голосов
/ 12 июля 2010

У меня есть пользовательский контроль в WPF. UserControl имеет событие MouseLeftMouseButtonUp. Проблема заключается в том, что Window имеет метод this.DragMove () в своем событии MouseDown, которое, кажется, мешает MouseLeftMouseButtonUp в пользовательском элементе управления (мне нужен метод this.DragMove () для перемещения окна без полей). Есть идеи? Спасибо!

Ответы [ 4 ]

4 голосов
/ 13 июля 2010

DragMove - синхронный вызов; он блокируется, пока пользователь не закончит перемещение окна. Это означает, что когда DragMove вернется, левая кнопка поднимется . Добавьте свой код сразу после вызова DragMove () , и все будет в порядке.

2 голосов
/ 05 марта 2011

Я столкнулся с той же проблемой, но нашел ответ.Ваше событие Window_MouseDown не будет запускаться, если MouseDown уже обработан, поэтому все, что вам нужно сделать, чтобы DragMove не вмешивался в события мыши вашего элемента управления, это добавить код:

Private Sub YourControl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles YourControl.MouseDown
    e.Handled = True
End Sub
0 голосов
/ 31 мая 2019
   private void  MouseDown(object sender, MouseButtonEventArgs e)
      {
          e.Handled = true;
          if (e.LeftButton == MouseButtonState.Pressed)
         {
            this.DragMove();
          }

          if (e.LeftButton == MouseButtonState.Released)
          {
          //your mouse up code
          }
      }
0 голосов
/ 07 октября 2010

У меня тоже были такие проблемы, и я обнаружил, что использование событий щелчка вместо событий кнопки мыши не позволяет запускать dragmove.Для моего исправления мне просто нужно было поменять метку на кнопку.Возможно, вы могли бы создать подкласс другого элемента для вашего usercontrol, чтобы вы могли выбрать событие щелчка для использования?

...