WPF Принудительное нажатие MouseDevice

У меня есть форма окна в окне 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 нажмите на форму окна. «Происходят странные вещи ...» было просто глупой ошибкой с моей стороны, я продолжал сбрасывать координаты мыши при движении мыши, но понял, что моя мышь никогда не перемещается относительно окна, так как окно тоже движется, да!

9
задан default locale 29 July 2014 в 12:50
поделиться