protected override void OnFontChanged(EventArgs e) { base.OnFontChanged(e); IntPtr hFont = WellsMetroFonts.TabControl(metroLabelSize, metroLabelWeight).ToHfont(); SendMessage(this.Handle, WM_SETFONT, hFont, (IntPtr)(-1)); SendMessage(this.Handle, WM_FONTCHANGE, IntPtr.Zero, IntPtr.Zero); this.UpdateStyles(); }
private Size MeasureText(string text) { Size preferredSize; using (Graphics g = CreateGraphics()) { Size proposedSize = new Size(int.MaxValue, int.MaxValue); preferredSize = TextRenderer.MeasureText(g, text, WellsMetroFonts.TabControl(metroLabelSize, metroLabelWeight), proposedSize, WellsMetroPaint.GetTextFormatFlags(TextAlign) | TextFormatFlags.NoPadding); } return(preferredSize); }
private void DrawTab(int index, Graphics graphics) { Color foreColor; Color backColor = BackColor; if (!useCustomBackColor) { backColor = WellsMetroPaint.BackColor.Form(Theme); } TabPage tabPage = TabPages[index]; Rectangle tabRect = GetTabRect(index); if (!Enabled) { foreColor = WellsMetroPaint.ForeColor.Label.Disabled(Theme); } else { if (useCustomForeColor) { foreColor = DefaultForeColor; } else { foreColor = !useStyleColors?WellsMetroPaint.ForeColor.TabControl.Normal(Theme) : WellsMetroPaint.GetStyleColor(Style); } } if (index == 0) { tabRect.X = DisplayRectangle.X; } Rectangle bgRect = tabRect; tabRect.Width += 20; using (Brush bgBrush = new SolidBrush(backColor)) { graphics.FillRectangle(bgBrush, bgRect); } TextRenderer.DrawText(graphics, tabPage.Text, WellsMetroFonts.TabControl(metroLabelSize, metroLabelWeight), tabRect, foreColor, backColor, WellsMetroPaint.GetTextFormatFlags(TextAlign)); }