更改标签中的文本会使文本对齐不工作

本文关键字:文本 对齐 工作 标签 | 更新日期: 2023-09-27 18:18:09

这是我在运行时对我的标签所做的事情:(c#)

label.Text = sometext;
label.TextAlign = ContentAlignment.MiddleCenter;
label.Invalidate();
label.Update();
label.Refresh();
label.PerformLayout();

在显示窗口之后,在此代码运行之前,默认文本完美地在中间对齐。此代码运行后,文本将从左上角对齐。

标签的自动大小设置为false。

现在,我做错了什么?

更新:

我找到了一个部分解决方案,不知道为什么我自己的问题:将"UseCompatibleTextRendering"设置为true将使文本正确对齐,而不需要修改文本后的5行代码中的任何一行。但这毫无意义。是不是新的文本渲染应该是更好的,和旧的渲染暴露我的视觉伪影等?

更改标签中的文本会使文本对齐不工作

我试图重现您的问题,但无法。我建议您修改这段简单的代码来尝试重现您的问题:

class FormD : Form {
    Label lb = new Label { Text = "ABCDEFG", Size = new Size(200, 200), TextAlign = ContentAlignment.MiddleCenter, BackColor = Color.RosyBrown, UseCompatibleTextRendering = true };
    public FormD() {
        Controls.Add(lb);
    }
    [STAThread]
    static void Main(String[] args) {
        Application.SetCompatibleTextRenderingDefault(false);
        Form f2 = new FormD();
        Application.Run(f2);
        return;
    }
}