問題の再現
.NETのGraphics.MeasureStringメソッドを利用すると文字列のサイズを測定できますが、通常の方法での測定結果に少しずれが発生します。ここでは正確の測定結果を得る方法を説明します。
まずテスト環境を作成します。新しいWindows Formプロジェクトを作成し、Formのコードを以下のように準備します。(Form7をForm1に変更してください)
public partial class Form7 : Form
{
public Form7()
{
InitializeComponent();
Font = new Font(Font.FontFamily, 14);
Size = new Size(300, 250);
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e); var g = e.Graphics;
var str = "文字列を測定する";
// ----ここはテストコード----
}
}