相关疑难解决方法(0)

如何获取每个显示器的缩放因子,例如 1、1.25、1.5

我知道以前曾有人问过这个问题,但我已经尝试了找到的所有答案,但似乎没有一个对我有用。答案似乎适用于单个显示器,或者需要窗口句柄,或者位于 WPF 应用程序中。我有一个没有 UI 的 C# 类库,它是从不同的语言一起调用的。

我被要求确定 C# 类库中连接到当前 PC 的每个显示器的缩放系数,例如 1、1.25、1.5 等。

我还需要提供每台显示器的分辨率和颜色深度。注册表确实保存了DpiValueWindows 10 中的 ,无论是什么。

Computer\HKEY_CURRENT_USER\Control Panel\Desktop\PerMonitorSettings
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何将它们映射到 aScreen以获得返回的匹配分辨率

System.Windows.Forms.Screen.AllScreens
Run Code Online (Sandbox Code Playgroud)

那么有人有办法获取这些信息吗?

c# multiple-monitors class-library dpi

8
推荐指数
1
解决办法
1万
查看次数

检测是否已缩放/虚拟化非DPI感知应用程序

我试图在WinForms应用程序中检测是否由于操作系统具有高DPI而以缩放/虚拟化模式启动.目前,在运行速度为3840x2400且缩放率为200%的系统中,应用程序将分辨率视为1920x1200,DPI视为96,比例因子为1.

我们正在使应用程序支持DPI,但在此之前,我们需要一个"快速修复",以便我们检测是否缩放.这样做的原因是它破坏了截取屏幕截图的应用程序中的功能.我们使用Graphics.CopyFromScreen中的缩放尺寸,它采用了错误尺寸的屏幕截图,因为它期望非缩放尺寸.

我知道DPI感知设置,但目前我们仍然希望缩放应用程序,但是如果可能的话,能够检测到我们是否已缩放并获得非缩放尺寸.

.net c# windows dpi

7
推荐指数
1
解决办法
2969
查看次数

标签 统计

c# ×2

dpi ×2

.net ×1

class-library ×1

multiple-monitors ×1

windows ×1