コントロールのサイズに合わせてフォントサイズを自動的に縮小する方法は?

文書番号 : 33998     文書種別 : 使用方法     登録日 : 2012/12/19     最終更新日 : 2015/01/06
文書を印刷する
対象製品
ActiveReports for .NET 7.0J
詳細
ページレポートのTextBoxコントロールや、セクションレポートのTextBox・Labelコントロールでは、ShrinkToFitプロパティを"True"に設定することで、コントロールのサイズにあわせて自動的に文字列を縮小させることが可能です。

製品ヘルプの以下のトピックをご覧ください。

PowerTools ActiveReports for .NET 7.0J
 - ActiveReportsユーザーガイド
  - 概念
   - ShrinkToFitの使用

なお、ShrinkToFitプロパティには、以下のような制限事項・注意点があります。
  1. CanGrow/CanShrinkプロパティの設定は無視されます
    ShrinkToFitプロパティをTrueに設定した場合、CanGrow/CanShrinkプロパティの設定は無視されます。(CanGrow/CanShrinkプロパティは、セクションレポート限定のプロパティです。)

    これは、ShrinkToFitプロパティがコントロールのサイズにあわせてフォントサイズを変更するための機能であるのに対し、CanGrow/CanShrinkプロパティは文字列にあわせてコントロールのサイズ自体を調整するための機能であるためです。

    ShrinkToFitプロパティがTrueに設定されている場合、こちらの設定が優先されます。

  2. 縦書きのテキストには対応していません
    VerticalTextプロパティ(セクションレポート)やWritingModeプロパティ(ページレポート)を使用することで、文字列を縦書きに最適化した状態で描画することが可能です。

    しかしながら、ShrinkToFitプロパティは縦書きに対応していません。縦書きに設定したTextBox/LabelコントロールのShrinkToFitプロパティを"True"に設定しても、フォントサイズの自動縮小は行われません。

  3. MultiLineとWrapModeプロパティの設定に依存します
    ShrinkToFitプロパティをTrueに設定していても、MultiLineとWrapModeプロパティを以下のように設定している場合には、文字列全体が表示されない(フォントサイズが小さくならない)場合がございます。

    MultiLineプロパティ:False
    WrapModeプロパティ:WordWrap

    MultiLineプロパティを"False"に設定した場合、そのコントロールには1行しか出力されませんが、内部的にワードラップ(自動改行)動作が働いております。

    MultiLineプロパティを"False"に設定した場合、ワードラップ動作によって自動改行されて次の行に送られた文字列はレポート上には表示されず、文字列自体が存在しないものとして無視されます。そのため、自動改行されずにコントロール内に表示されている文字だけが ShrinkToFitプロパティによる自動縮小制御の対象となります。

    TextBox(Label)コントロールの WrapModeプロパティが"WordWrap"に設定されている場合は、"NoWrap"に設定してください。
関連情報
キーワード
HowTo デザイン・レイアウト