質問: new font("ms ui gothic", fontsize ); fontsize += 0.001f; } とつくり的にはこんな感じでとれることはとれたのですが もっとスマートな方法、簡単な方法はないのでしょうか? よろしくお願いします。
回答: 指定した高さ (単位:pixel) のフォントが使いたいわけではなく, 指定した行間 (単位:pixel) のフォントが使いたいのですね。 前者であれば,コンストラクタで graphicsunit.pixel を指定するだけの話なのですが, 後者の場合,fontfamily オブジェクトを作り,getlinespacing メソッドと getemheight メソッドから計算して font を生成することになります。 var style = fontstyle.regular; var requestheight = 90.0f; var fontfamily = new fontfamily("ms ui gothic"); var fontsize = requestheight * fontfamily.getemheight(style) / fontfamily.getlinespacing(style); var font = new font(fontfamily, fontsize, graphicsunit.pixel); references) msdn: font コンストラクター (string, single, graphicsunit) http://msdn.microsoft.com/ja-jp/library/fza59xh0.aspx msdn: graphicsunit 列挙体 http://msdn.microsoft.com/ja-jp/library/system.drawing.graphicsunit.aspx msdn: getlinespacing メソッド http://msdn.microsoft.com/ja-jp/library/system.drawing.fontfamily.getlinespacing.aspx msdn: getemheight メソッド http://msdn.microsoft.com/ja-jp/library/system.drawing.fontfamily.getemheight.aspx