У меня есть форма окна в окне wpf, и я пытаюсь использовать DragMove
, когда я нажимаю на форму окна, это окно с изображением, поэтому я хочу иметь возможность перетаскивать Окно вокруг, просто щелкнув изображение.
Я ловлю указатель мыши на моей форме и вызываю событие mouseleftbuttondown окна wpf с помощью:
if (e.Button == MouseButtons.Left)
{
MouseDevice mouseDev = InputManager.Current.PrimaryMouseDevice;
MouseButtonEventArgs mouseEvent = new MouseButtonEventArgs(mouseDev, 0, MouseButton.Left)
{
RoutedEvent = MouseLeftButtonDownEvent
};
RaiseEvent(mouseEvent);
}
Однако всякий раз, когда я проверяю InputManager.Current.PrimaryMouseDevice из своего обработчика (или обработчика MouseMove моей формы) , состояние LeftButton "освобождено".
Почему это? Я не могу придумать способ заставить его «нажать», так как все свойства доступны только для чтения.
Или мой подход просто неверен и невозможен? Я также попытался установить расположение моего окна при перемещении мыши, но происходят странные вещи, когда значения моей мыши продолжают возвращаться к предыдущему положению.
Спасибо!
edit: Итак, я вручную настраиваю расположение окна, но все же надеюсь, что кто-то сможет просветить меня, почему MouseDevice не делает этого. t нажмите на форму окна. «Происходят странные вещи ...» было просто глупой ошибкой с моей стороны, я продолжал сбрасывать координаты мыши при движении мыши, но понял, что моя мышь никогда не перемещается относительно окна, так как окно тоже движется, да!