我想让我的C#应用程序了解DPI。 Windows API中有一个名为SetProcessDPIAware()的命令,但问题是它只能在Windows Vista和更高版本的Windows中运行,而不能在XP中运行。如何使控件,按钮和字体DPI识别,使其无论使用何种Windows版本都能正确显示?
答案 0 :(得分:6)
致电SetProcessDPIAware
并不只是神奇地让DPI知道你的一切;它的目的是向Windows声明您的应用程序已被正确编写为DPI识别。此外,不建议使用它;你应该在你的清单中声明DPI意识。在MSDN上有关于此的整个article。
答案 1 :(得分:2)
请参阅我关于如何使应用程序响应this StackOverflow question上的DPI设置的中等详细答案。
简短版本是您可以将所有表单的AutoScaleMode
更改为ScaleMode.Dpi
。
但最好留在ScaleMode.Font
;随着DPI的增加,字体变大。