2

我想让我的 C# 应用程序知道 DPI。Windows API 中有一个名为 SetProcessDPIAware() 的命令,但问题是它仅适用于 Windows Vista 和更高版本的 Windows,而不适用于 XP。如何使控件、按钮和字体 DPI 感知,以便无论使用什么 Windows 版本都能正确显示?

4

2 回答 2

6

调用SetProcessDPIAware不只是神奇地让 DPI 为您感知一切;其目的是向 Windows 声明您的应用程序已正确编写为可识别 DPI。此外,不推荐使用它;你应该在你的清单中声明 DPI 意识。在 MSDN 上有一篇关于此的完整文章。

于 2011-02-07T22:30:48.873 回答
2

请参阅我关于如何使应用程序响应此 StackOverflow 问题的 DPI 设置的中等详细答案。

简短的版本是您可以将所有表单更改AutoScaleModeScaleMode.Dpi.

但最好把它留在ScaleMode.Font; 随着 DPI 的增加,字体会变大。

于 2011-04-03T12:45:39.243 回答