更改标签中的文本使文本对齐不起作用?
以下是我在运行时用标签完成的工作:(C#)
label.Text = sometext;
label.TextAlign = ContentAlignment.MiddleCenter;
label.Invalidate();
label.Update();
label.Refresh();
label.PerformLayout();
在窗口显示之后,在此代码运行之前,默认文本在中间中心完美对齐。 这段代码运行后,文本左上角对齐。
标签的autosize为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;
}
}
链接地址: http://www.djcxy.com/p/63655.html