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 に指定すると、指定された幅と高さでテキストが表示され、何も切り取られません。
ただし、リンクを LinkLabel.Links コレクションに入れると、LinkLabel は文字間の間隔が少し広く見えるテキストを描画し、場合によってはテキストの最後が切り取られます。これを防ぐ方法はありますか?リンクがある場合にパディングを追加しようとしましたが、さらに必要なスペースを正確に知る確実な方法はありません。これを行う他の方法はありますか?