プロが教えるわが家の防犯対策術!

.NET Framework(C#)のメソッドを利用して、ワープロソフトのラベル機能のような、フォントの大きさを自動的に調節した状態で、任意の矩形枠内に文字列がぴったりと収まるようにするプログラムを組んでいるのですが、今の段階では

・とりあえず枠の大きさと同じ高さをもつFontクラスを作成
・Graphics.MeasureStringで得たサイズが矩形枠を超えるなら、
 一回り小さいサイズのFontクラスを作り直す
・以後繰り返し

と、非常に効率の悪いプログラム処理をしています。もっと効率のよい方法や関連メソッドをご存じの方がおられましたらお教えください。

A 回答 (1件)

一回りずつ小さくしていくのではなく、枠の幅とGraphics.MeasureStringで得た幅の比率を元に次のフォントのサイズを決めてみてはいかがですか?


フォントによっては文字幅が一定に変わらないかもしれませんが・・・
    • good
    • 0
この回答へのお礼

参考になりました。StringFormat.NoWrap属性が有効の時はこのまま使えそうですが、折り返し属性を有効にした場合はもうひとつ手間を掛けなければいけないみたいです。

お礼日時:2007/04/07 20:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!