有谁知道我是否可以在任何地方查看此参数?
答案 0 :(得分:2)
您可以阅读Graphics.DpiX
来辨别这一点。
将Graphics.DpiX
乘以100并除以96,您将获得百分比字体缩放。这是正确的,因为100%字体缩放等于96dpi。
请注意,如果您的应用程序未标记为DPI aware,那么当用户将字体缩放设置为150%时,DpiX
属性将报告96.我不知道是否或不标准的WinForms应用标记为DPI识别。
答案 1 :(得分:0)
如果您不使用C#,则需要执行两个步骤才能在Windows 7中使用它。
首先,使您的应用程序具有DPI感知能力。 This blog解释了如何做到这一点。它涉及修改应用程序清单或调用SetProcessDPIAware()函数(可能存在也可能不存在)。
接下来,分别使用GetDeviceCaps(hdc, LOGPIXELSX)
和GetDeviceCaps(hdc, LOGPIXELSY)
获取X / Y DPI值,如this MSDN article中所述。
我有一个以前不支持DPI的应用程序,但在使用文本缩放时仍然破坏(在Windows 7“显示”控制面板中可用),这使它工作,但对Windows 8没有影响或者更新。