Windows XP中的DPI Aware应用程序

时间:2011-02-07 14:34:24

标签: windows-xp dpi dpi-aware

我想让我的C#应用​​程序了解DPI。 Windows API中有一个名为SetProcessDPIAware()的命令,但问题是它只能在Windows Vista和更高版本的Windows中运行,而不能在XP中运行。如何使控件,按钮和字体DPI识别,使其无论使用何种Windows版本都能正确显示?

2 个答案:

答案 0 :(得分:6)

致电SetProcessDPIAware并不只是神奇地让DPI知道你的一切;它的目的是向Windows声明您的应用程序已被正确编写为DPI识别。此外,不建议使用它;你应该在你的清单中声明DPI意识。在MSDN上有关于此的整个article

答案 1 :(得分:2)

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

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

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