我正在开发一个Windows窗体应用程序。我想将文本对齐到窗体标题栏的中心或右侧。我该怎么做?
可以使用自定义表单来实现-您将不得不创建自己的标题栏。请参见V4Vendettas的评论;
另一种方法(链接)是创建自己的窗体调整大小处理程序,并在其中插入以下代码。它将从文本左侧大小添加适当数量的空格。但是,您必须添加form.Refresh()并在form.Load中调用该方法;此外,任务栏中的文本将显示为"..."。
private void UpdateTextPosition()
{
Graphics g = this.CreateGraphics();
Double startingPoint = (this.Width / 2) - (g.MeasureString(this.Text.Trim(), this.Font).Width / 2);
Double widthOfASpace = g.MeasureString(" ", this.Font).Width;
String tmp = " ";
Double tmpWidth = 0;
while ((tmpWidth + widthOfASpace) < startingPoint)
{
tmp += " ";
tmpWidth += widthOfASpace;
}
this.Text = tmp + this.Text.Trim();
}
Graphics g = this.CreateGraphics();
double fw = this.Width; // form width
double tw = g.MeasureString(this.Text.Trim(), this.Font).Width; \\ text width
double rp = (fw - tw) / 2;
int tt = Convert.ToInt32(rp);
string st = " ";
st = st.PadRight(tt / 3);
this.Text = st + this.Text.Trim();
Label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
如果你想对齐标题栏的文本,Winforms 没有提供这样的功能。你需要使用类似于这样的东西:http://www.codeproject.com/Articles/93959/WinForm-Extended
在 Windows 窗体设计器内。像 this.label1.AutoSize = false
一样进行更改;
然后:
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;