[英]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.