如何在Windows 8 Metro界面上绘制

本文关键字:界面 绘制 Metro Windows | 更新日期: 2023-09-27 17:58:17

我想绘制将驻留在所有其他界面之上的图形,包括Windows 8新的主屏幕。你会怎么做?在Windows 7及以下版本中,只需显示一个透明的全屏窗口就可以了,但现在由于桌面与操作系统的其他部分分离,这已经不可能了。

原因是我需要显示两个独立于Windows鼠标光标的光标。我正在为Wii Remote开发一个多点触摸模拟软件(使用传感器条指针),目前我只设置光标位置,并通过摇动+1和-1像素来唤醒它。但它会干扰触摸,所以我在使用触摸模拟时必须禁用它。它目前有效,但我想添加多点触摸支持,这样你就可以使用Wii Remote进行缩放和旋转。触摸功能已经准备好了,但当你用Wii Remote按住一个触摸点并选择另一个触摸时,你会想看到光标,当按住第一个触摸点时,Windows光标无法移动到其他地方,因为它会粘在触摸点上。

我已经看到了如何通过获取屏幕的Graphics对象直接绘制到屏幕上,但它不起作用,因为它完全不受管理,所以图形保持可见,直到其他东西刷新该区域。

那么,有什么建议吗?

该项目名为Touchmote,可在Touchmote.net上作为源代码和可安装的测试版获得。

如何在Windows 8 Metro界面上绘制

  1. 通过在requestedPrivileges属性中指定UIAccess="true",要求应用程序清单中的UIAccess完整性级别
  2. 使窗口位于最上面(通过SetWindowPos更改位置或在WinForms/WPF中设置topmost属性)
  3. 使用链接到本地计算机受信任根证书颁发机构证书存储中的受信任根的数字证书对应用程序进行签名
  4. 从文件系统中的安全位置直接运行(即不从调试器运行)。之后可以附加调试器

请注意,这会使您的应用程序运行提升,当您需要从较低的完整性级别连接到应用程序时,可能会出现问题。

已经有一个界面可以用于您想要做的事情:触摸注入。您可以指定您的联系人在范围内,但不与屏幕接触,屏幕上将显示一个小圆圈。你不需要自己画圆圈;触摸系统会为你做这件事。