如果我给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/

10-11 01:31