首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读取屏幕缩放因子(100%,125%,...)从Visual studio中的显示设置(c#)

如何读取屏幕缩放因子(100%,125%,...)从Visual studio中的显示设置(c#)
EN

Stack Overflow用户
提问于 2019-07-12 16:35:43
回答 1查看 924关注 0票数 0

我看过每一个类似的问题,但没有一个对我有效。我正在编写一个winForm,它将显示我的屏幕因素。我已经尝试从注册表读取(不工作)我已经尝试使用动态链接库"gdi32.dll“,但只在Win10上,而不是在Win7上。我也尝试过:

代码语言:javascript
复制
float dpiX, dpiY;
using (Graphics graphics = Graphics.FromHwnd(IntPtr.Zero))
{
    dpiX = graphics.DpiX;
    dpiY = graphics.DpiY;
}

但它也不能工作。我知道这个问题是重复的,但之前问题中的所有答案都没有帮助,所以这就是为什么我要打开一个新的问题。有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2019-07-12 20:50:45

您可以将GetDpiForWindow与清单一起使用。

代码语言:javascript
复制
uint nDPI = GetDpiForWindow(this.Handle);

我得到了=>

代码语言:javascript
复制
        100% : 96
        125% : 120
        150% : 144
        175% : 168

声明=>

代码语言:javascript
复制
    [DllImport("User32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
    public static extern uint GetDpiForWindow(IntPtr hwnd);

清单=>

代码语言:javascript
复制
  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
      <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitor</dpiAwareness>
     </windowsSettings>
  </application>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57003193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档