Перетащите окно из сетки

Я создал настраиваемое окно со значением windowStyle = "none" (без заголовка или кнопок максимизации - минимизации), и я пытаюсь реализовать операцию DragMove, когда пользователь щелкает и перетаскивает сетку. (это связано с вызовом DragMove в обработчике MouseLeftButtonDown)

Первая странная проблема, с которой это событие никогда не срабатывает, если у сетки нет фона. Добавление некоторого цвета фона приводит к запуску события, но после первого перетаскивания я получаю эту ошибку:

«Можно вызывать DragMove только тогда, когда основная кнопка мыши нажата»

Фрагмент кода:

Private Sub Grid1_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles Grid1.MouseLeftButtonDown
    DragMove()
End Sub

Я знаю, что это отлично сработает для метки, но нет ли способа заставить это работать для сетки?


person Nikos Tsokos    schedule 29.01.2009    source источник


Ответы (1)


Хорошо, я нашел ответ..

Я использовал границу для переноса сетки, а затем перехватил событие Border1_MouseLeftButtonDown.

Мне также пришлось установить границы фона на «Прозрачный», и теперь все работает как часы.

Private Sub Border1_MouseLeftButtonDown(ByVal sender As System.Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles Border1.MouseLeftButtonDown
    DragMove()
End Sub
person Nikos Tsokos    schedule 30.01.2009