単なるテキスト
Controlから継承されるものでもユーザーの操作を受け付けないコントロールクラスが一つだけありました。細かな設定ができないChartStaticTextの代わりにも使えるコントロールです。
TextBlockクラス
ラベルなどに使うためのただのテキストですが、行間の設定やはみ出した場合の表示等、細かく設定できます。そのため、プログラムの実行中に内容が変わるようなラベルにも柔軟に対応できます。
public class TextBlock : Control
代表的な使い道としては、単純なラベル以外にも他のコントロールのContentに設定するといったものがあります。
プロパティ
(string) Text {get; set;}
表示するテキストを取得、設定します。
(TextAlignment) TextAlignment {get; set;}
テキストの水平方向の揃え位置を取得、設定します。デフォルトはLeft(左揃え)。
(TextWrapping) TextWrapping {get; set;}
テキストの折り返し方法を取得、設定します。デフォルトはNoWrap(折り返しなし)。
(TextTrimming) TextTrimming {get; set;}
テキストの終端処理の方法を取得、設定します。デフォルトはNone(処理なし)。
(double) LineHeight {get; set;}
一行の高さを取得、設定します。
(LineStackingStrategy) LineStackingStrategy {get; set;}
行間の決め方を取得、設定します。デフォルトMaxHeight。
TextAlignment列挙型
Left | 左揃え |
Center | 中央揃え |
Right | 右揃え |
Justify | 折り返した場合、表示域幅に合わせて調整 |
Justifyのイメージはこんな感じです。折り返しなし、もしくは1行だけのテキストだとLeftと同じ表示になります。
TextWrapping列挙型
テキスト長さがコントロール幅を超えた場合の折り返しの方法を表します。
NoWrap | 折り返しません。 |
Wrap | 折り返します。単語が長すぎる場合は単語途中でも折り返します。 |
WrapWithOverflow | 折り返します。単語途中では折り返しません。 |
左からNoWrap、Wrap、WrapWithOverflow。"I like supercalifragilisticexpialidocious!"という文章を表示させるとこんな感じになります。。
TextTrimming列挙型
テキスト長さがコントロール幅を超えた場合の終端処理の方法を表します。
None | 終端処理なし |
CharacterEllipsis | 文字単位で...で表示 |
WordEllipsis | 単語単位で...で表示 |
LineStackingStrategy列挙型
行高さ(≒行間)の決め方を表します。
BlockLineHeight | 純粋にプロパティLineHeightで決まります。なぜか文字は下寄せになります。 |
MaxHeight | LineHeightが小さすぎる場合は、文字高さに補正されます。文字は上寄せになります。 |