是的,它知道

是的,它知道

我有一台新的商务笔记本电脑和 Windows 10,并带有通过 HDMI 连接的外接显示器。

两个显示器(即笔记本电脑和外接显示器)都是 1920x1080,但外接显示器在物理上比笔记本电脑的更大。

当我将窗口从一台显示器拖到另一台显示器时,窗口的内容会调整大小:两台显示器上的文本大小在物理上大致相同,而较大的显示器能够在一个窗口内显示更多的文本。

我的问题是,Windows 是否真的知道外接显示器的物理尺寸(和/或 DPI),还是只是猜测?

更具体地说,如果我连接一个稍大一点的外接显示器,它是否能在更大的窗口上显示更多内容...或者它只会显示相同的内容/布局但稍大的文本?

答案1

是的,它知道

监视器正在发送扩展显示识别码数据包含有关显示器的一些信息,包括其物理尺寸。以下是我的较旧的问题/答案

MonitorInfoView 的屏幕截图

注意最大图像尺寸行,其中表示52 × 29 厘米(23.4 英寸)。所以 Windows 确实知道显示器的物理尺寸。

(所述程序从 Windows 注册表读取该信息,而不是查询监视器。Windows 会记录所有连接到系统的监视器的 EDID 数据。)

Windows 可能会使用这些信息

这纯粹是基于我的经验的猜测。@kreemoweet 的回答表明 Windows 可能根据一些硬编码信息而不是 EDID 信息或结合 EDID 信息做出这些决定。

在“显示设置”中,您可以以 25% 为增量设置显示缩放比例。在 14 英寸笔记本电脑上,可用的最高缩放比例选项为 175%,而 15.6 英寸笔记本电脑的缩放比例不能超过 125%。在我看来,Windows 确保屏幕上的元素在物理上不会大于某个任意尺寸。

我认为这些信息还可用于在 Windows 安装期间选择默认显示缩放比例以及初始设置。如果有人可以确认或否认这一点,请这样做!

您正在观察不同的缩放设置

在现代 Windows 版本(我认为是 8 及更新版本)中,您可以为每个显示器设置单独的缩放系数。每个窗口都根据包含窗口最大部分的显示器的设置进行缩放。目标是补偿不同的像素密度,并在所有显示器上实现桌面内容的大致相同物理尺寸。

这就是为什么如果缩放设置不同,当将窗口拖过屏幕边框时,一旦窗口中间位于另一个显示器上,它会在某个时刻突然在两个显示器上缩小或放大。

答案2

Windows 使用逻辑单位(英寸)。它只是 dpi 除以显示器的分辨率。显示器越大,逻辑英寸就越大。

这会告诉您 Windows 知道什么。输入命令提示符。

对于监视器

wmic path Win32_DesktopMonitor get /format:list

对于视频设置

wmic path Win32_VideoController get /format:list

获取可能的设置列表

wmic path CIM_VideoControllerResolution get /format:list

有关多显示器的更多信息请参见此处

https://docs.microsoft.com/en-us/windows/win32/gdi/the-virtual-screen

答案3

经常,但并非总是。

在工作中,我们有一个应用程序需要知道显示器的物理尺寸,以便以正确的比例显示地图。为此,我们向 Windows 请求 EDID 信息,这在很多情况下都有效,但并非总是如此。不幸的是,有时用户需要手动覆盖尺寸。我们还没有发现显示器提供和不提供信息的模式。

附注:请记住,有些设备实际上没有物理尺寸:例如投影仪和 VR 耳机。

答案4

根据行业 EDID 规范,显示器应该向操作系统/视频驱动程序提供大量有关其功能的信息。其中包括可用的像素分辨率、时钟频率、制造商名称和型号以及精确到毫米的屏幕尺寸。理论上,这些信息使操作系统/视频驱动程序能够完美缩放其输出,以在两个显示器之间保持一致的字体大小等。有时,某些 EDID 信息会丢失或不正确。Windows 在其内置驱动程序之一 (monitor.sys) 中包含一个包含各种显示器规格的数据库,在这种情况下可以查阅该数据库。有时甚至连这个都不可用。

相关内容