WPF: проверить движение мыши и положение курсора в обработчике кнопки мыши - PullRequest
0 голосов
/ 22 августа 2010

Я работаю над восстановлением функции аэросъемки в моем приложении wpf c #, которая была потеряна при установке размера «Нет». У меня есть прямоугольник в верхней части моего окна, к которому я добавляю код в событие mouseleftbuttondown.

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

Вторая часть моего вопроса заключается в том, как я могу отследить, находится ли курсор в верхней, левой или правой части экрана, чтобы я мог запустить код для окна, чтобы развернуть его или выровнять по левому или правому краю экрана, как аэро оснастки.

Спасибо

1 Ответ

4 голосов
/ 22 августа 2010

Для вашего первого выпуска, я думаю, вы должны сделать это наоборот. То есть иметь обработчик MouseMove, чтобы проверить, нажата ли левая кнопка мыши, и сделать то, что вам нужно. Вы должны предварительно просмотреть левую кнопку мыши, чтобы отслеживать, если и где она была нажата в первую очередь.

Найдите руководства по перетаскиванию и узнайте, как они инициируют перетаскивание для вдохновения.


Для вашего второго выпуска вы можете использовать PointToScreen() вместе с Mouse.GetPosition(), чтобы получить текущую позицию относительно экрана. Затем используйте это для сравнения с фактическими границами экрана со свойствами SystemParameters.PrimaryScreenWidth и SystemParameters.PrimaryScreenHeight.

var pos = this.PointToScreen(Mouse.GetPosition(this)); //position relative to screen
if (pos.X == 0) //on the left
    //...
else if (pos.X == SystemParameters.PrimaryScreenWidth-1) //on the right (goes from 0 to (width-1))
    //...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...