• 締切済み

枠内に文字列をぴったり収めるには

.NET Framework(C#)のメソッドを利用して、ワープロソフトのラベル機能のような、フォントの大きさを自動的に調節した状態で、任意の矩形枠内に文字列がぴったりと収まるようにするプログラムを組んでいるのですが、今の段階では ・とりあえず枠の大きさと同じ高さをもつFontクラスを作成 ・Graphics.MeasureStringで得たサイズが矩形枠を超えるなら、  一回り小さいサイズのFontクラスを作り直す ・以後繰り返し と、非常に効率の悪いプログラム処理をしています。もっと効率のよい方法や関連メソッドをご存じの方がおられましたらお教えください。

みんなの回答

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

一回りずつ小さくしていくのではなく、枠の幅とGraphics.MeasureStringで得た幅の比率を元に次のフォントのサイズを決めてみてはいかがですか? フォントによっては文字幅が一定に変わらないかもしれませんが・・・

Tank2005
質問者

お礼

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

関連するQ&A