更改标签中的文本会使文本对齐不工作
本文关键字:文本 对齐 工作 标签 | 更新日期: 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;
}
}