[英]How can i change in TabControl the font size of a tab title?
如果更改Tab
控件的Font
大小,則Tab
卡標題的字體將更改。 由於Font是一個ambient
屬性,它也將傳遞給所有包含的控件。
為了防止這種情況,最好將每個TabPage
的字體重置為原始大小。
在您的屏幕截圖中,您向我們展示了設置Font
大小的效果,而不是Tab
控件的Font
大小,而僅是TabPage
的Font
大小。 這當然不會影響選項卡標題..
我想讓 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.