gpt4 book ai didi

c# - 检测 Windows 字体大小(100%、125% 和 150%)

转载 作者:IT王子 更新时间:2023-10-29 03:57:48 26 4
gpt4 key购买 nike

我创建了一个应用程序,该应用程序在用户选择 125% 或 150% 之前都能完美运行。它会破坏我的应用程序。后来我找到了一种通过检测 DPI 来查找字体大小的方法。

在使用中文版 Windows 7 的人开始使用我的应用程序之前,它一直运行良好。整个应用程序在中文 Windows 7 上中断。据我所知(我无法真正测试它,因为我只有英文版本,安装语言包不会导致问题)中文字符导致奇怪的 DPI 破坏了我的申请。

我当前的代码是这样工作的:

if (dpi.DpiX == 120) // For 125% fonts
{
// Resize form and set default font to correct problems
}
else if (dpi.DpiX == 96) // For 100 and 150% fonts
{
// Resize form and set default font to correct problems
}

在英文版的 Windows 7 上效果很好,但不知何故中文版会跳过这个,表单会自行破坏,控件甚至不显示,字体非常大并超越了问题,图片框四处移动。

那么在不检测 DPI 的情况下检测 Windows 字体比例(100%、125% 和 150%)的好方法是什么?我需要可以在所有 Windows 7 操作系统和语言上运行的可靠工具。

最佳答案

处理可变 DPI 设置的正确方法是不要检测它们并在 switch 语句中手动调整控件的大小(对于初学者来说,可能性比您在示例中显示的要多得多if 语句)。

相反,您应该设置 AutoScaleMode property将您的表单设置为 AutoScaleMode.Dpi 并让框架为您处理。

将以下代码添加到表单的构造函数(或在设计时设置此属性):

this.AutoScaleMode = AutoScaleMode.Dpi;

尽管您可能更喜欢使用 AutoScaleMode.Font。有关自动缩放的更多信息,请参阅 the MSDN documentation .

关于c# - 检测 Windows 字体大小(100%、125% 和 150%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9373260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com