delphi – 为什么Screen返回的分辨率低于Windows 8平板电脑的分辨率?

前端之家收集整理的这篇文章主要介绍了delphi – 为什么Screen返回的分辨率低于Windows 8平板电脑的分辨率?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一台 Windows 8平板电脑,全高清分辨率为1920×1080像素.

但是当我使用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分辨率.

解决方法

这可能是与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相关文章