我正在尝试检测WinForms应用程序是否已在缩放/虚拟化模式下启动,因为操作系统具有高DPI。目前,在3840x2400且200%缩放的系统中,应用程序将分辨率视为1920x1200,DPI为96,比例因子为1。
我们正在使应用程序具有DPI感知能力,但在此之前,我们需要一个“快速修复”方案,以便能够检测是否进行了缩放。这是因为它会破坏应用程序中获取屏幕截图的功能。我们在Graphics.CopyFromScreen中使用缩放后的尺寸,但它期望非缩放尺寸,因此会截取错误大小的屏幕截图。
我知道有DPI感知设置,但目前我们仍希望应用程序进行缩放,但要能够检测是否进行了缩放,并获取非缩放尺寸(如果可能)。