問題の再現
.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 = "文字列を測定する"; // ----ここはテストコード---- } }