C# WinForm Label 垂直居中:两种方法详解
要使 C# WinForm 中的 Label 垂直居中,可以使用以下两种方法:
- 使用 TableLayoutPanel 控件:
将 Label 放置在一个 TableLayoutPanel 的单元格中,并将 Label 的 Dock 属性设置为 Fill,然后将 TableLayoutPanel 的 RowStyle 设置为百分之百的大小,并将 Alignment 属性设置为 MiddleCenter。
TableLayoutPanel tableLayoutPanel1 = new TableLayoutPanel();
Label label1 = new Label();
tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableLayoutPanel1.Controls.Add(label1, 0, 0);
label1.Dock = DockStyle.Fill;
label1.TextAlign = ContentAlignment.MiddleCenter;
- 使用自定义控件:
创建一个自定义控件,继承自 Label,并重写 OnPaint 方法,在方法中使用 Graphics 的 DrawString 方法来绘制文本,并将字符串位置设置为控件的中心。
public class VerticalCenterLabel : Label
{
protected override void OnPaint(PaintEventArgs e)
{
using (StringFormat format = new StringFormat())
{
format.LineAlignment = StringAlignment.Center;
format.Alignment = StringAlignment.Center;
e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), ClientRectangle, format);
}
}
}
然后,在窗体中使用该自定义控件来代替标准的 Label 控件。
VerticalCenterLabel label1 = new VerticalCenterLabel();
label1.Text = '垂直居中';
label1.Dock = DockStyle.Fill;
通过上述方法,可以轻松实现 C# WinForm 中 Label 的垂直居中效果。
原文地址: https://www.cveoy.top/t/topic/fkrq 著作权归作者所有。请勿转载和采集!