通过使用Screen
(Screen.AllScreens
用于多屏幕)类,可以很容易地获得屏幕的基本信息。但是,在多显示器设置中,似乎很难获得每个屏幕的DPI或显示器比例信息。
我在How to get Windows Display settings?中找到了一些针对"DPI感知"应用的解决方案
然而,如上所述,它们大多要求运行的应用程序为"DPI感知"或单屏幕环境(任何Form
或Control
必须位于所需的屏幕中以计算DPI值)。
我只想得到每台显示器的"比例值(100%,125% ..在显示设置〉比例和布局)"(它可以不DPI)。重要的是,该应用程序没有声明为"DPI感知",它不会。它是一个WinForm遗留程序。
在那种情况下有可能做到吗?
先谢谢你。
1条答案
按热度按时间xriantvc1#
注意:对于DWMWA_EXTENDED_FRAME_BOUNDS以外的用途,或者对于pvAttribute使用RECT以外的内容的任何情况,此代码段中DwmGetWindowAttribute的签名都是不正确的。
你的窗口也必须显示在你想要获取缩放比例的屏幕上。所以不要在窗体中使用这个。加载事件