.NET自定义控件:防止字体大小更改/从父级继承字体比例/大小

时间:2011-08-12 07:02:01

标签: c# .net winforms

我在C#中创建了一些控件,并成功使用它们。但是,在用户PC上使用自定义设置(字体)DPI,比方说125%甚至150% - 我的控件继承了新的比例,并且无法正确显示。

我想知道如何禁止我的控件继承此比例。

3 个答案:

答案 0 :(得分:3)

我知道这不是你想要的答案。但要考虑为什么人们的系统设置方式如此。它可能是一个视力问题或只是他们的偏好。是的,处理缩放显示可能会很麻烦,但这比用户无视您的产品更好,因为他们无法阅读/使用它。

答案 1 :(得分:2)

如果您正在构建自己的应用程序,可以将Form的AutoScaleMode属性设置为“None”,以禁用基于系统DPI设置自动调整Form的字体大小。

如果您只是构建一个其他人将集成到自己的表单中的控件,您将需要覆盖控件的Font属性并将其强制为您预先确定的硬编码值。

另请注意,正如其他人所说,你不想这样做 - 用户已经调整了他们的系统DPI是有原因的,并且覆盖他们的选择可能只会使你的控制无法使用它们。如果问题只是在更改系统DPI时控件无法正确缩放,请使用Winform的AutoSize功能并使用布局面板,这些面板将根据事物的大小自动调整,例如TableLayoutPanel(AutoSize设置适当)行和列)或FlowLayoutPanel。

答案 2 :(得分:-1)

如果用户使用自定义字体时控件无法正确显示,那么您做错了而不是“成功使用它们”。有another SO question询问如何在Winforms中考虑自定义字体大小。这并不难。