Question

I have a wpf window that has a height of 2000 with an actual desktop height of about 1000. Obviously about half of the window is off screen. Even though the window extends below the screen, the mouse will not move down to that area. I do want this content to be off-screen, and I want the mouse to be able to move over it and click on elements if the mouse is positioned over an element at that position. I don't want to change my screen resolution as some content absolutely has to be off the screen. Not sure how to go about this.

Was it helpful?

Solution

Cursor delimiting is not done by the application, but by Windows itself. To my knowledge there is no way to have your cursor pointing off the screen.

You could simulate what you want by doing what many games do. Do not draw the Windows cursor, draw a custom one in your app window. Force the real cursor (not being drawn) to stay in the center of the monitor. Every time the user moves the real cursor, move your application's cursor accordingly and re-place the real cursor to the center of the screen.

This will give the illusion of what you'd like, but I don't think WPF can handle this.

OTHER TIPS

There is not an off the screen cursor position in Windows. I think the mouse is bounded by the screen resolution, even if windows are not.

If you take a look at the screen shots of MaxiVista you'll find a screen shot showing the Device Manager:

Device Manager http://www.maxivista.com/pics/screenshots/vista_devicemanager_en.gif

As you can see they simply wrote a virtual display adapter, which provides its own display size. So windows will be informed about a available size of e.g. 2560x1600 would be possible and allows these bounds for all windows and the mouse. Now it is up to the display driver to forward the right portions of this virtual screen to the current real display adapters so that the right part is shown on each physical device.

I think it is possible. This program will enable to use a secondary computer as an extra monitor. There are several programs that can let you know the coordinates where your mouse cursor is positioned. For example AutoIt will do that easily.

enter image description here

When you install autoit it comes with this utility that will let you know the cordinates where you position the mouse. When I took the screen capture the mouse does not show up but I draw a blue dot where the mouse was located. Note that the cordinates where 710, 1464. Right now my screen resolution is 1200 * 1920 (my monitor is rotated). So with Autoit I am able to position my mouse cursor by doing something like

enter image description here

When I run that autoit program it will move the mouse to that location. The answers to this question seem to be right cause I am not able to move the mouse any further than 1200 to the right. In other words executing MouseMove(2500,800) will result in moving the mouse to 1200,800. Now the interesting part is how come I am able to move the mouse to (2500,800)! if I use This program In other words executing MouseMove(2500,800) now works with Autoit and the mouse actually moves to the other computer (maxivista has to be running). maxivista shows that there can be a way of moving the mouse outside the resolution of your screen.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top