我有一个包含在标签页中的用户控件。窗体设置了 AutoScaleMode = AutoScaleMode.Font,用户控件设置了 AutoScaleMode.Inherit。
现在,当我放大表单的字体大小时,用户控件中的字体也会放大,但控件内容没有缩放。如果我在用户控件上明确设置 AutoScaleMode.Font 则它可以正常工作。
AutoScaleMode.Inherit 不应该那样工作吗?
我有一个包含在标签页中的用户控件。窗体设置了 AutoScaleMode = AutoScaleMode.Font,用户控件设置了 AutoScaleMode.Inherit。
现在,当我放大表单的字体大小时,用户控件中的字体也会放大,但控件内容没有缩放。如果我在用户控件上明确设置 AutoScaleMode.Font 则它可以正常工作。
AutoScaleMode.Inherit 不应该那样工作吗?
MSDN给出了明确的警告:
在 .NET Framework 1.0 和 1.1 版中,使用始终依赖当前系统字体的更简单机制支持自动缩放。此机制现已过时,但仍支持向后兼容。您可以通过将包含 Form 的 AutoScale 属性设置为 true 来获得较旧的缩放行为,这也会将 ContainerControl.AutoScaleMode 属性隐式设置为 None。相反,设置窗体的 ContainerControl.AutoScaleMode 属性会将 AutoScale 设置为 false,从而启用 .NET Framework 2.0 版引入的更新的缩放机制。
所以:第一个问题:您使用的是哪个框架版本?
第二个猜测:你的控件是在表单初始化之后添加的吗?