问题 Windows:如何在高dpi下测试UI?


我想测试我的应用程序如何反应 -dpi设置。我不仅仅意味着120dpi。我想测试更高的dpi设置,例如:

  • 建议使用150dpi分辨率
  • 300DPI
  • 600dpi的
  • 1000DPI
  • 1200dpi的

我的开发机器的视频卡无法达到300dpi所需的分辨率(或者甚至150dpi)。

假设界面设计为'适合'在具有768行(例如1024x768)的显示器上,较高dpi设置所需的分辨率为:

             Normal      Wide-Screen         Frame Buffer
  dpi     Resolution    Resolution    Zoom    Size (MiB)
=======  ============  ============  ======  ============ 
   96     1024 x  768   1280 x  768    100%      3.75     
  113     1200 x  900   1440 x  900    117%      4.96     
  120     1280 x  960   1536 x  960    125%      5.63
  131     1400 x 1050   1680 x 1050    137%      6.73
  150     1600 x 1200   1920 x 1200    156%      8.70
  300     3200 x 2400   3840 x 2400    313%     35.26
  600     6400 x 4800   7680 x 4800    625%    140.63
1,000    10667 x 8000  12800 x 8000  1,042%    390.63

所需的分辨率相当高,即使在150dpi。

我正在考虑运行软件的一些方面 虚拟PC,虚拟机正在运行 6400x4800  - 然后使用 VNC 连接到虚拟机。然后它可以缩放内容以适合我的显示器。虽然我失去了高dpi显示器的保真度,但我至少可以看一下它,与它进行交互(即 测试 它)。但VirtualPC模拟的s3 Trio 32/64显卡最为出色 1600×1200 (即150dpi)。

我也想知道是否有一些 虚拟视频卡 驱动程序在那里,可以像一个视频卡 - 能够高分辨率,但显示自己在我的原生桌面上缩放。

有任何想法吗?


参考


11899
2017-07-14 17:23


起源

你为什么要这样做?什么是需要你提升DPI的应用领域?是否有支持该分辨率的显示器? - mmr
我想成为一名优秀的开发商并付我的税(blogs.msdn.com/oldnewthing/archive/2005/08/22/454487.aspx) - Ian Boyd
而且因为我们没有更高分辨率的显示器,因为软件不能正确支持它们,并且软件不能正确支持它们,因为我们没有高分辨率显示器。 - Ian Boyd
您可能想知道有多少用户确实拥有这么大的监视器。我敢打赌1600x1200以上的任何东西都是非常罕见的。 - Byron Whitlock
你们有多少人支持120dpi?你们当中有多少人尊重Window的字体偏好。一旦我完成了正确的工作以支持120dpi或9pt字体,那么它应该自动支持所有内容。我想看到600dpi,这样我就可以立即看到我错过了什么。不要被更高的数字吓到。 - Ian Boyd


答案:


如果您的应用程序的布局在96,120,144,150 dpi时表现相同,那么我认为没有必要对更高的DPI进行测试,因为您已经测试过它适用于不均匀的dpi增量。

实际上市场上已经有很多高dpi友好设置,例如1680x1050 15,4“或1920x1080 16英寸显示器在笔记本电脑中,120dpi已经显示出像素依赖性问题,并且已经非常不舒服地使用96dpi致力于更高密度的显示器支持是有效的。对你有好处!

编辑:我一直在想。这可能不是非常实时,但也许你尝试处理 WM_PRINT 要么 WM_PRINTCLIENT 窗口中的消息并将其打印到文件或至少尝试使用打印机设置显示它们的打印预览?突然间,我们至少达到300dpi。只是一个想法。


4
2017-07-14 17:56



该 真实 这样做的动机是让同事明显地表现出来a) 为什么 你应该支持高dpi,和b) 哪里 你搞砸了我以非96 dpi运行我的电脑,但我是唯一一个。我需要做到 激将法 明显失败了。 - Ian Boyd
人们反对获得高分辨率的小显示器这一概念存在问题,因为他们害怕角色太小,所以对高dpi的需求并没有达到应有的程度。目前,大多数笔记本电脑用户都是使用微型显示器和“不成比例”分辨率的高dpi的主要目标。桌面显示器的尺寸仍然很大,因此它们在96dpi下运行良好,所以我担心在他们的240dpi 22英寸显示器上看到一个搞砸的应用程序之前,支持高dpi没有好的现实世界论据。 - macbirdie


您需要一个支持1920 x 1200的视频卡和显示器。许多用户都有这些,如果您是开发人员,他们会很高兴使用它们。如果您有1600 x 1200并且不想在新显示器上花钱那么好。除此之外,除非你为皮克斯工作,否则我认为没有必要。


3
2017-07-14 17:35



不是我花的钱。让任何人在这里(我工作的地方)关心dpi设置就像拔牙一样 - 在OP的评论中也是如此。 - Ian Boyd
微软表示:在192 DPI显示设置下进行测试是可选的,但它可以让您确定应用程序的“未来证明”。对于Windows Vista应用程序,我们建议您至少解决最多144 DPI配置的问题 - Robert Harvey♦
我可以运行的最高值是131dpi。 - Ian Boyd


我刚试过这个 VirtualBox的 可以报​​告以下内容:

  • 使用Windows XP主机我真的不能超过2000 x 2000,指定那些将简单地切换回800x600
  • 使用Ubuntu 11.04主机,我可以去 至少 4000x4000。

由于Windows Vista引入了新的驱动程序模型,如果Vista / Windows 7也支持这些高分辨率,我也不会感到惊讶。不幸的是,我没有Vista或Windows 7主机来自己测试。

必要的步骤如下:

  • 切换到缩放显示模式(使用 主办 - C,哪里 主办 默认为右 按Ctrl 键)。 这将绘制主机显示的缩放版本,因此不需要使用RDP技巧。它还确保有限的窗口大小不会强制VM降低屏幕分辨率
  • 使用命令行工具 VBoxManage 至 指定分辨率提示

    VBoxManage controlvm "VM Name" setvideomodehint 4000 4000 32
    

3
2018-06-01 08:34





正如您已经知道的那样,NVidia和ATI显示卡都可以让您创建自定义分辨率,但绝不会在一百万年内达到12800 x 8000.只是为了让您了解需要多少内存...它会需要的内存是1080(1920x1200)视频卡的45倍。然而,你可以做的是获得一个大的鸣喇叭和链接多张卡...甚至仍然... 12800 x 8000将更适合LINUX下的客户硬件和驱动程序。


1
2017-07-14 17:41



我希望更虚拟的东西:) - Ian Boyd
1997年:我听说有些GGI工作站的显示器高达1600x1200! zomgwtf我会的 决不 不得不担心支持那些! - Ian Boyd
仍在使用1997年编写的应用程序没有更新? - Byron Whitlock
Ian,我认为很可能在不久的将来,我们会看到更高的分辨率,因为需要在不同的照明条件下获得极大的清晰度,并希望从数字显示器中获得类似纸张的质量...但是12800 x 8000 x 32bit颜色=〜14.5 GB,刷新率为75hz,每秒数据。这就是需要传输多少数据。即使只是存储原始屏幕res也是大约200MB的缓冲区。 - Keith Adler
我只是在浏览器上浏览NewEgg。监视器分辨率提高但尺寸也增加。它们不是更高密度,而是变得越来越大。 - Ian Boyd


Windows不会检查您的显示器是否实际测量到您配置的DPI,因此只需连接最大的显示器并开始切换设置。

我很想知道为什么你要测试这么高的分辨率,即超过192的任何东西。如果你真的需要这么高的分辨率,你肯定可以访问将运行它的硬件吗?


0
2017-07-14 18:03



使用如此高分辨率的动机很容易看出我是否错过任何东西 - 并向同事指出事情被遗漏,这就是原因。 - Ian Boyd