【问题标题】:Windows form, stop child controls from inheriting Font of Form/GroupBox/ParentWindows窗体,阻止子控件继承Form/GroupBox/Parent的Font
【发布时间】:2011-09-21 11:26:55
【问题描述】:

有没有办法阻止任何具有字体属性的控件自动从容器控件继承字体属性,例如 Panel、GroupBox 和 Form。

我尝试在容器上将 AutoScaleMode 设置为 None 但没有任何运气。

有什么建议吗?

【问题讨论】:

    标签: windows winforms forms fonts


    【解决方案1】:

    Font、ForeColor、BackColor 和 Cursor 是环境属性,这意味着如果未设置它们,则它们从父容器继承。

    如果控件设置了 Font 属性,则不会使用环境字体。如果控件没有设置 Font 属性,则继承自父容器。

    ambient 属性在基本控件类中设置,如 Label。该控件将 Font 定义为环境值。禁用它的唯一方法是覆盖 Font 属性,使其不是环境的。您可以创建扩展 Windows 窗体标签类的新控件类,如 MyLabel,然后覆盖 Font 属性,使其不是环境属性。构建应用程序后,可以将 MyLabel 类从工具箱拖到表单设计器中。

    我没有看到禁用环境字体的实用程序。如果容器不小心换了字体,在什么情况下最好把字体保留为Windows选择的字体,这与用户当前设置的主题无关?

    【讨论】:

    • 当时我最终使用了扩展类,问题是如果我记得的话,我已经有 Groupbox 或面板的扩展类,具有自定义颜色、背景颜色和字体,问题是子控件继承了相同的设置,这不是我想要的。谢谢!
    猜你喜欢
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多