テキストを表示するためのコントロールです。
Text プロパティにテキストを直接指定したり、
System.Windows.Documents.Run クラスによるインラインレベルフローコンテンツ要素を指定したりすることでテキストを指定できます。
ページ内リンク
Text プロパティ
もっとも基本的な使い方は次のように Text プロパティにテキストを直接指定する方法です。
このように Text プロパティに表示させたいテキストを指定するだけで下図のように表示されます。
テキストの配置とコントロールの配置
ここで、一体どの領域が TextBlock コントロールなのでしょうか。わかりやすくするために背景色を付けてみます。
TextBlock コントロールが全体に伸びている様子がわかります。
ここで、テキストを中央に描画させようとしたとき、2 つの方法が考えられます。
ひとつは TextBlock コントロールの中でテキストの位置をセンタリングする方法で、
もうひとつは TextBlock コントロール自体を Grid コントロールの中央に配置する方法です。
TextBlock コントロールの中でテキストの位置をセンタリングするには、TextAlignment プロパティを使用します。
TextBlock コントロール自体をセンタリングするには HorizontalAlignment プロパティを使用します。
HorizontalAlignment プロパティはコントロールの配置を変更するプロパティなので、
センタリングされた TextBlock コントロールはその幅が自動調整されていることが背景色でわかります。
このように、水平方向は TextAlignment プロパティがありますが、
垂直方向の位置を変更する場合は VerticalAlignment プロパティで
TextBlock コントロール自体の配置を変更しなければなりません。
複数行テキスト
項目名などは 1 行でいいかもしれませんが、ちょっとした説明文などを表示する場合、テキストが複数行になる場合があります。
このようなときは、次のように Run および LineBreak というインラインレベルフローコンテンツ要素を使用します。
<TextBlock> 〜 </TextBlock> で挟むコンテンツは TextBlock コントロールの Inlines プロパティに指定されるようになっています。
これは、TextBlock の ContentPropertyAttribute に Inlines プロパティが指定されているためです。
Inlines プロパティには InlineCollection を指定する必要がありますが、
Collection の場合、その子要素を並べて記述できるという特徴があります。
したがって、上記のように <Run /> や <LineBreak /> を並べて書くことができます。
LineBreak は意図した位置で改行させることができますが、
ウィンドウのサイズなどによって相対的に改行させたい場合は、TextWrapping プロパティを使用します。