1

我有一个高度为 2000 的 wpf 窗口,实际桌面高度约为 1000。显然,大约一半的窗口不在屏幕上。即使窗口延伸到屏幕下方,鼠标也不会向下移动到该区域。我确实希望此内容不在屏幕上,并且如果鼠标位于该位置的元素上方,我希望鼠标能够在其上移动并单击元素。我不想更改我的屏幕分辨率,因为某些内容绝对必须不在屏幕上。不知道该怎么做。

4

4 回答 4

4

光标定界不是由应用程序完成的,而是由 Windows 本身完成的。据我所知,没有办法让您的光标指向屏幕外。

您可以通过做许多游戏所做的来模拟您想要的。不要绘制 Windows 光标,在您的应用程序窗口中绘制自定义光标。强制真实光标(未绘制)停留在监视器的中心。每次用户移动真实光标时,相应地移动应用程序的光标并将真实光标重新放置到屏幕中心。

这会给您带来您想要的错觉,但我认为 WPF 无法处理此问题。

于 2009-03-18T18:51:24.463 回答
1

Windows 中没有离屏光标位置。我认为鼠标受屏幕分辨率的限制,即使窗口不是。

于 2009-03-18T18:50:53.280 回答
1

我认为这是可能的。该程序将允许使用辅助计算机作为额外的监视器。有几个程序可以让您知道鼠标光标所在的坐标。例如AutoIt很容易做到这一点。

在此处输入图像描述

当您安装 autoit 时,它附带了这个实用程序,可以让您知道您放置鼠标的坐标。当我进行屏幕截图时,鼠标没有出现,但我在鼠标所在的位置画了一个蓝点。注意坐标是 710, 1464。现在我的屏幕分辨率是 1200 * 1920(我的显示器是旋转的)。因此,使用 Autoit,我可以通过执行类似的操作来定位鼠标光标

在此处输入图像描述

当我运行该 autoit 程序时,它会将鼠标移动到该位置。这个问题的答案似乎是正确的,因为我无法将鼠标向右移动超过 1200。换句话说,执行 MouseMove(2500,800) 将导致鼠标移动到 1200,800。现在有趣的部分是我为什么能够将鼠标移动到(2500,800)!如果我使用这个程序换句话说MouseMove(2500,800),现在执行与 Autoit 一起工作,并且鼠标实际上移动到另一台计算机(必须运行 maxivista)。maxivista 表明有一种方法可以将鼠标移动到屏幕分辨率之外

于 2012-10-17T14:57:08.660 回答
1

如果您查看MaxiVista的屏幕截图,您会发现显示设备管理器的屏幕截图:

设备管理器 http://www.maxivista.com/pics/screenshots/vista_devicemanager_en.gif

如您所见,他们只是编写了一个虚拟显示适配器,它提供了自己的显示大小。因此,窗口将被告知可用大小,例如 2560x1600 是可能的,并允许所有窗口和鼠标的这些边界。现在由显示驱动程序将此虚拟屏幕的右侧部分转发到当前的真实显示适配器,以便在每个物理设备上显示右侧部分。

于 2012-10-17T15:29:40.077 回答