6

我有一台全高清分辨率为 1920x1080 像素的 Windows 8 平板电脑。

但是当我使用 Delphi 的Screen对象来获取它时Screen.WidthScreen.Height它将返回在该 Windows 8 平板电脑上运行的 1280x720 分辨率。

问题的根源在哪里?在 Windows(平板电脑)端还是在 Delphi 端?我使用 Delphi 7 到 XE2,结果相同。这似乎是平板电脑问题,而不是一般的 Windows 8 问题,因为我的 Windows 8.1 台式机上没有这样的行为。


结论

我只是想强调我的问题的原因,因为它有点隐藏在评论中。
默认情况下,我平板电脑上的 Windows 8 使用 150% DPI。1080 像素是 720 像素的 150%。因此 720px 可供应用程序使用。将 DPI 百分比降低到 100% 会导致预期的 1080 像素分辨率。

4

2 回答 2

4

这可能是与 DPI 相关的问题。Aero 可以通过两种方式处理高 DPI 情况:

  • 对应用程序说,DPI 大于标准 96,并让它自行扩展
  • 对应用程序撒谎,DPI 通常为 96,并使用一些图像缩放算法缩放它的窗口(产生模糊)

可能是第二种情况 Aero 不仅在 DPI 上撒谎,而且在屏幕分辨率上也撒谎。


如果第二种情况是您的情况,请不要关闭缩放。只需让您的应用程序支持 DPI: http ://www.rw-designer.com/DPI-aware - 一般信息 http://www.micro-isv.asia/2010/09/high-dpi-support-in- windows-vista-and-7/ - 德尔福

于 2013-08-06T12:07:55.190 回答
2

全高清的定义是有争议的。

业界已采用全高清一词作为消费者友好的营销术语,表示该设备可以安全购买,因为它可以显示至少一种可用的高清分辨率。

您的设备支持 16:9 的纵横比,这是高清的国际标准。

两个最广为人知的full HD决议是:

  • 1280 x 720 (720p)
  • 1920 x 1080 (1080p)

您的设备说它full HD只是意味着设备的显示至少支持 720p 的分辨率,最高支持 1080p。

鉴于这是一款平板电脑,它的原始分辨率应该是 720p 高清。您可以强制 1080p 的事实恰恰意味着,标记为的显示器Full HD能够显示 1080p。并不意味着 1080p 是它的原始分辨率。

要回答您的问题,Delphi 的Windows 都没有错。

于 2013-08-06T11:18:42.680 回答