为什么Screen返回的分辨率低于我的Windows 8平板电脑设置为?

Eri*_*tel 6 delphi dpi tablet windows-8

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

但是当我使用Delphi的Screen对象,以获得Screen.Width和Screen.Height它将返回的Windows 8平板电脑上运行的1280×720的分辨率.

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


结论

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

Tor*_*ins 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/ - delphi