![](/img/trans.png)
[英]How can i make WinForms TabPage header width fit it's title?
[英]How do I make a TabPage's title text bold?
我在C#Windows应用程序中有一些tabControl。 它有一些tabPages。 有没有人知道如何使tabPage Text成为Bold ..?
您需要处理TabControl
的DrawItem
事件以手动绘制标题。 注意:受影响控件的DrawMode
应设置为TabDrawMode.OwnerDrawFixed
。
这是一个示例:
private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
Graphics g = e.Graphics;
Brush _TextBrush;
// Get the item from the collection.
TabPage _TabPage = tabControl1.TabPages[e.Index];
// Get the real bounds for the tab rectangle.
Rectangle _TabBounds = tabControl1.GetTabRect(e.Index);
if (e.State == DrawItemState.Selected)
{
// Draw a different background color, and don't paint a focus rectangle.
_TextBrush = new SolidBrush(Color.Blue);
g.FillRectangle(Brushes.Gray, e.Bounds);
}
else
{
_TextBrush = new System.Drawing.SolidBrush(e.ForeColor);
// e.DrawBackground();
}
// Use our own font. Because we CAN.
Font _TabFont = new Font(e.Font.FontFamily, (float)9, FontStyle.Bold, GraphicsUnit.Pixel);
//Font fnt = new Font(e.Font.FontFamily, (float)7.5, FontStyle.Bold);
// Draw string. Center the text.
StringFormat _StringFlags = new StringFormat();
_StringFlags.Alignment = StringAlignment.Center;
_StringFlags.LineAlignment = StringAlignment.Center;
g.DrawString(tabControl1.TabPages[e.Index].Text, _TabFont, _TextBrush,
_TabBounds, new StringFormat(_StringFlags));
}
在Winforms中,您可以更改DrawMode并绘制自己的所有标题。
请参阅MSDN示例 。
另一个不太优雅的选项是将父窗体/控件的font-> bold属性设置为true,这将使所有内容都变为粗体,包括选项卡名称,然后在不想要粗体的所有控件上将粗体设置为false。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.