我想让我的 C# 应用程序知道 DPI。Windows API 中有一个名为 SetProcessDPIAware() 的命令,但问题是它仅适用于 Windows Vista 和更高版本的 Windows,而不适用于 XP。如何使控件、按钮和字体 DPI 感知,以便无论使用什么 Windows 版本都能正确显示?
问问题
3958 次
2 回答
6
调用SetProcessDPIAware
不只是神奇地让 DPI 为您感知一切;其目的是向 Windows 声明您的应用程序已正确编写为可识别 DPI。此外,不推荐使用它;你应该在你的清单中声明 DPI 意识。在 MSDN 上有一篇关于此的完整文章。
于 2011-02-07T22:30:48.873 回答
2
请参阅我关于如何使应用程序响应此 StackOverflow 问题的 DPI 设置的中等详细答案。
简短的版本是您可以将所有表单更改AutoScaleMode
为ScaleMode.Dpi
.
但最好把它留在ScaleMode.Font
; 随着 DPI 的增加,字体会变大。
于 2011-04-03T12:45:39.243 回答