如果用户在win7中使用125%或150%的放大字体,需要找到你



有人知道我是否可以在任何地方检查这个参数吗?

您可以阅读Graphics.DpiX来辨别这一点。

Graphics.DpiX乘以100并除以96,您将得到字体缩放百分比。这是真的,因为100%的字体缩放等于96dpi。

如果你的应用程序没有被标记为DPI感知,那么当用户将字体缩放设置为150%时,DpiX属性将报告96。我不知道标准的WinForms应用程序是否被标记为DPI感知

如果你不使用c#,你需要做两个步骤来让这个在Windows 7中工作。

首先,让应用程序能够感知dpi。这篇博客解释了如何做到这一点。它包括修改你的应用程序清单,或者调用SetProcessDPIAware()函数(可能存在也可能不存在)。

接下来,分别获取GetDeviceCaps(hdc, LOGPIXELSX)GetDeviceCaps(hdc, LOGPIXELSY)的X/Y DPI值,如这篇MSDN文章所述。

我有一个以前没有DPI感知的应用程序,但在使用文本缩放时仍然会崩溃(在Windows 7"显示"控制面板中可用),这使它工作,而在Windows 8或更新的版本中没有影响。

最新更新