C#将进度条中的文本居中

时间:2014-02-01 20:52:31

标签: c# visual-studio-2008 progress-bar

我想在进度条上对齐动态文字。

这是代码

using (var sf = new StringFormat()
        {
            Alignment = StringAlignment.Center,
            LineAlignment = StringAlignment.Center,
        }
    )
    progressBar1.CreateGraphics()
                .DrawString(message, new Font("Arial", (float)8.25, FontStyle.Regular), Brushes.Black, new Rectangle(0, 0, 600, 480), sf);

600,480是我的应用程序的大小。 我的进度条位置为0,430 进度条尺寸为600,11

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

用它来衡量字符串的大小:Graphics.MeasureString

然后使用这个简单的公式:

containerWidth // width in pixels of the container
textWidth      // width of your string in pixels

margin = (containerWidth - textWidth) / 2;

您必须将margin像素左侧的文字偏移。

答案 1 :(得分:0)

using (var sf = new StringFormat()
{
    Alignment = StringAlignment.Center,
    LineAlignment = StringAlignment.Center,
})
{
    progressBar1.CreateGraphics()
        .DrawString(message,
            new Font("Arial",
                (float) 20, FontStyle.Regular),
            Brushes.Black,
            new Rectangle(0, 0, 600, 480), sf);
}