繁体   English   中英

如何在 TabControl 中更改选项卡标题的字体大小?

[英]How can i change in TabControl the font size of a tab title?

当我在设计器中选择一个选项卡,例如 General 并更改属性的字体大小时,它只会更改选项卡内控件的大小,但名称 General 将保持较小。

我找不到在哪里/如何更改常规尺寸。

选项卡控件

选项卡属性屏幕截图我更改了选项卡字体大小,但标题 General 仍然很小。 属性 Text 它的大小没有改变。

标签属性

如果更改Tab控件的Font大小,则Tab卡标题的字体更改。 由于Font是一个ambient属性,它也将传递给所有包含的控件。

为了防止这种情况,最好将每个TabPage的字体重置为原始大小。

在您的屏幕截图中,您向我们展示了设置Font大小的效果,而不是Tab控件的Font大小,仅是TabPageFont大小。 这当然不会影响选项卡标题..

您需要此属性页: 在此处输入图片说明

我想让 TabControl 标题字体大小在 UI 中可调,但遇到了一个问题,我不能只更改标题大小,而不更改选项卡中的所有字体。 这是因为子控件中字体属性的环境特性,如上所述。

我最终的解决方案是首先使用以下例程删除子控件中字体的环境/继承性质:

    public static void ForceNonAmbientFont(System.Windows.Forms.Control.ControlCollection ctrls)
    {
        
        foreach (Control ctrl in ctrls)
        {
            if (ctrl.Controls != null) ForceNonAmbientFont(ctrl.Controls);
            if (ctrl != null)
            {
                var fontFamilyName = ctrl.Font.FontFamily.Name;
                var fontStyle = ctrl.Font.Style;
                ctrl.Font = new Font(fontFamilyName, ctrl.Font.Size, fontStyle);
            };
        };
    }

然后使用要为其更改标题字体的 TabControl 的名称调用它。 然后这会“锁定”孩子的所有字体。

ForceNonAmbientFont(MyTabControl.Controls);

之后,您可以更改 TabControl 的字体而不会弄乱任何其他内容。

MyTabControl.Font = new System.Drawing.Font("Microsoft Sans Serif", size, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM