gpt4 book ai didi

C# WinForms 禁用 DPI 缩放

转载 作者:太空狗 更新时间:2023-10-29 18:11:23 25 4
gpt4 key购买 nike

我有一个托管许多图像的 WinForm 应用程序。当我将应用程序放在 DPI 为 120 的 Win7 机器上时,它完全破坏了表单的外观。有没有办法禁用我的表单的缩放?

我知道不建议这样做,DPI 应该是无缝的并由操作系统处理。但是当涉及到皮肤应用程序时,图像不能很好地缩放。我没有为所有 DPI 变体创建图像的奢侈,所以请不要建议将其作为答案。

最佳答案

当您更改 AutoScaleMode 属性时,您会遇到更大的问题。增加 DPI 也会更改系统字体大小。必然如此,字体大小以磅表示,1/72 英寸。当 DPI 增加时,字体需要更大才能获得相同的磅值,并在从相同的距离观看时保持文本的可读性。

由于控件不再调整大小,因此按钮上的文本不再适合。解决这个问题的一种方法是按比例更改控件上的字体大小。如果让所有控件继承窗体字体很容易,只需更改窗体的 Font 属性也会自动更新控件。明显的缺点是用户将更难阅读文本。当 DPI 达到每英寸 150 点及以上时,情况尤其糟糕,您的 UI 只会变成无法使用的邮票。

是的,背景图像需要缩放以适应较大的控件或表单。图像中的像素现在不再一对一映射到显示器的像素。默认的 Graphics.InterpolationMode 值在过滤图像方面做得相当不错。但这取决于图像的类型,结果如何。照片几乎总是可以很好地缩放。精细的线条艺术和文字没有。选择正确类型的图像对于避免创建单独的图像大有帮助。

在显示器开始具有打印机所具有的那种分辨率之前,这个问题不会消失。我们距离桌面显示器的 600 dpi 还有很长的路要走。电话将是第一位的。

关于C# WinForms 禁用 DPI 缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4009150/

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