要使 C# WinForm 中的 Label 垂直居中,可以使用以下两种方法:

  1. 使用 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;
  1. 使用自定义控件:

创建一个自定义控件,继承自 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 的垂直居中效果。

C# WinForm Label 垂直居中:两种方法详解

原文地址: https://www.cveoy.top/t/topic/fkrq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录