Для вашего первого выпуска, я думаю, вы должны сделать это наоборот. То есть иметь обработчик 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))
//...