winforms 对于Label控件,为什么当文本的长度超过控件的宽度时,文本会略微升高?有没有办法避免这种情况?(C#、winform)

ugmeyewa  于 2022-11-16  发布在  C#
关注(0)|答案(1)|浏览(249)

我试过“自动省略”和“自动调整大小”,但它们都不起作用。我上传了一张GIF图片来帮助你理解我的问题:

GIF图片似乎无法显示。我在这里添加两张图片:第一次
请注意,文字的高度不同。
示例代码:

public void Run()
{
    Form form = new Form();
    form.Width = (int)(Screen.PrimaryScreen.WorkingArea.Width * 0.15);
    Label lbl = new Label();
    lbl.Width = form.Width;
    lbl.Height = 200;
    lbl.Text = "this is a test,this is a test,this is a test,this is a test,this is a test";
    lbl.TextAlign = ContentAlignment.MiddleLeft;
    form.Height = lbl.Height;
    form.Controls.Add(lbl);
    form.SizeChanged += new EventHandler((object sender, EventArgs eventArgs) =>
    {
        lbl.Width = form.Width;
    });
    form.Show();
}

但是当我测试这个示例代码的时候,我已经知道了答案,关键点是“lbl.TextAlign = ContentAlignment.MiddleLeft”,这段代码让文字在垂直方向居中,当Label的宽度减小时,文字就会变成两行,第一行的位置会变高。

btqmn9zl

btqmn9zl1#

谢谢Jmcilhinney和Ralf的建议,真的帮助了我。
当我测试这个示例代码的时候,我已经知道了答案。2关键点是“lbl.TextAlign = ContentAlignment.MiddleLeft”。3这个代码使文本在垂直方向居中。4当Label的宽度减小时,文本将变成两行,并且第一行的位置会变高。

相关问题