【问题标题】:Text of label moves a few pixels when ellipsis added添加省略号时标签的文本移动几个像素
【发布时间】:2020-03-19 11:50:31
【问题描述】:

我有一个带有AutoSize = falseAutoEllipsis = true 的标签,我注意到如果在此标签的文本中添加省略号,它会移动几个像素,如下面的屏幕截图所示:

为什么?我究竟做错了什么?我该如何解决?

提前致谢。

【问题讨论】:

标签: c# winforms


【解决方案1】:

这似乎是bug

当文本太大时,它会与顶部对齐,开启 (2) 或不开启 (1) AutoEllipsis

不幸的是,建议的解决方案通常看起来很丑。

对于解决方法 (3),您可以使用如下所示的简单函数,也可以编写一个集成该功能的 Label 子类..:

string ReducedText(Label lbl, string text)
{
    char ell = (char)0x00002026;

    lbl.Tag = text;
    string redString = text;
    using (Font font = new Font(lbl.Font, FontStyle.Bold))
    using (Graphics G = lbl.CreateGraphics())
    {
        G.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
        float elltWidth = TextRenderer.MeasureText(G, ell.ToString(), font).Width;
        float textWidth = TextRenderer.MeasureText(G, redString, font).Width;
        elltWidth += lbl.Padding.Left + lbl.Padding.Right ;
        if (textWidth < lbl.ClientSize.Width) return text;  // maybe watch padding!
        SizeF s = SizeF.Empty;
        do
        {
            redString = redString.Substring(0, redString.Length - 1);
            s = TextRenderer.MeasureText(G, redString, font);
            // Console.WriteLine(s.Width + "  " + lbl.ClientSize.Width + " " + redString);
        } while (s.Width + elltWidth > lbl.ClientSize.Width);
    }
    return redString + ell;
}

在一些粗体字体上,省略号看起来像一个下划线;在这种情况下,只需将其替换为带有 2-3 个点的字符串..!

【讨论】:

  • 不幸的是,您的解决方案在我的情况下似乎不起作用——标签中的文本仍然对齐。我是这样使用的——this.label.Text = ReducedText(this.label, str);
  • 嗯,用法如愿。假设 TextAlignment 是 MiddleLeft 你可能需要增加 slack (3) 我不得不加一点;尝试 5-8..
  • 好的。你能解释一下标签:那里显示的图像是什么?
  • 这是一个简单的Label,设置如下——i.imgur.com/DtJEw6c.png,i.imgur.com/Rz01tTf.png
【解决方案2】:

解决此问题的最简单方法是将标签的 UseCompatibleTextRendering 属性设置为 True。

【讨论】:

  • 它给了我奇怪的字体
【解决方案3】:

将标签的边距属性的顶部和底部设置为 3 似乎对我有用。所以将你的边距设置为 (3,3,3,3)!

【讨论】:

    猜你喜欢
    • 2013-08-07
    • 2018-08-06
    • 2013-09-15
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 2015-05-01
    • 2013-04-05
    相关资源
    最近更新 更多