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

时间:2016-02-20 22:19:02

标签: c# .net winforms

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

我无法找到更改常规尺寸的位置/方式。

TabControl

标签属性截图我更改了标签字体大小但标题常规仍然很小。属性Text it的大小没有改变。

Tab Properties

2 个答案:

答案 0 :(得分:5)

如果您更改Font控件的Tab大小,则标题页标题的字体将更改。由于字体ambient属性,因此它也会传递给所有包含的控件。

为防止这种情况发生,最好将字体重置为每个TabPage的原始尺寸。

在屏幕截图中,您向我们展示了设置Font } } } {<1>} <{1>} 的效果} 只要。这当然不会影响标签页..

您需要此属性页:enter image description here

答案 1 :(得分:0)

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

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

    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)));