如何确定标签适合多少个字符?

问题描述 投票:0回答:1

我发现了这个: 如果C#中提供了字体,是否可以计算固定宽度标签可以容纳多少个字符?

它不起作用,我有一个标签,我想确定标签中适合多少个字符,以便我可以在分配之前修改内容,我该怎么做,从我尝试过的上面的链接:

Graphics g = Graphics.FromHwnd(this.lblDestPathContent.Handle);
int intHeight, intWidth;
g.MeasureString(strPath, this.lblDestPathContent.Font
                       , this.lblDestPathContent.Size
                       , null, out intWidth, out intHeight);
this.lblDestPathContent.Text = strPath;

intWidth 返回的长度与 strPath 相同,并且它不适合标签。

lblDestPathContent 是一个 System.Windows.Forms.Label

[编辑]上述示例:

strPath contains 154 characters
the size of the label is returned as {Width = 604, Height = 17}
Font is {Name = "Microsoft Sans Serif", Size=8.25}

调用MeasureString后:

intWidth contains 154
intHeight contains 2
c# winforms label size
1个回答
0
投票

我已经成功地做到了我需要的:

string strModifiedToFit = strPath;
bool blnFit = false;
while(blnFit == false) {
    Size szText = System.Windows.Forms.TextRenderer.MeasureText(strModifiedToFit
                                                                , this.lblDestPathContent.Font);
    if (szText.Width < this.lblDestPathContent.Size.Width) {
        blnFit = true;
    } else {
        strModifiedToFit = strModifiedToFit.Substring(strModifiedToFit.Length - (strModifiedToFit.Length - 1));
    }
}
this.lblDestPathContent.Text = strModifiedToFit;

上面从路径中删除一个字符,直到它适合标签。

© www.soinside.com 2019 - 2024. All rights reserved.