gpt4 book ai didi

c# - LinkLabel 需要比 TextRenderer.MeasureText 说更多的空间

转载 作者:行者123 更新时间:2023-11-30 22:49:48 24 4
gpt4 key购买 nike

如果我给 TextRenderer.MeasureText 一些要测量的文本和要使用的宽度,它将返回显示该文本所需的高度。

private static int CalculateHeight(string text, Font font, int width)
{
Size size = TextRenderer.MeasureText(text, font, new Size(width, Int32.MaxValue), TextFormatFlags.NoClipping | TextFormatFlags.WordBreak);
return size.Height;
}

如果我将该文本、宽度和高度提供给 LinkLabel,它将以所提供的宽度和高度显示文本,不会被剪掉。

但是,如果我将 Link 放入 LinkLabel.Links 集合中,LinkLabel 将绘制文本,字符之间的间距看起来会稍大一些,有时这会导致文本的结尾被剪掉。有什么办法可以防止这种情况发生吗?我试过在有链接时添加填充,但没有可靠的方法来确切知道还需要多少空间。还有其他方法吗?

最佳答案

你应该使用 Control.GetPreferredSize计算控件所需宽度或高度的方法(在您的情况下为 LinkLabel)。您不应该将 MeasureText 用于此类目的,您可以找到更详细的解释 here (Accuracy of TextRenderer.MeasureText results.)

关于c# - LinkLabel 需要比 TextRenderer.MeasureText 说更多的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/952518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com