簡體   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