Top > Programming > .NetFramework > WPF > TextBlock TextBox Label
Last-modified: Mon, 15 Apr 2013 00:00:57 JST
Counter:34014 Today:1 Yesterday:10 Online:1
このエントリーをはてなブックマークに追加

TextBlockとLabelの違い

About

文字列をGUI上に表示するためにはTextBlockやLabelを利用することが一般的であると思われますが、それぞれの違いについてまとめておきます。

継承関係の違い

WPFを深いところまで利用する必要がある開発者でなければ、不要な情報になるかもしれませんが、TextBlockはControlクラスを親に持たず、継承関係にありません。一方でLabelはControlクラスを継承しています。両者の差によって、以降で解説する差異が発生しています。Controlを対象にするような実装を行うときに、TextBlockを一般的なコントロールと同様のControlの継承クラスと思い込んで実装してしまうのは危険です。

テキストかContentか

TextBlockは文字列のみを表示することができます。一方でLabelの方はContentに与えられる全てのオブジェクトに対応することができます。

(_)アンダーバー・下線の表示

Labelではその表記にアンダーバー(_)が利用できません。なぜならば、コントロールが持つ機能の1つである"アクセスキー"に対応しているからです。アクセスキーは例えば"_A"と記述すると、"A"キーを押すことでその(対象となる)コントロールにフォーカスがジャンプします。

エスケープ文字を利用すればアンダーバーを表示することができるかもしれません(未検証)。

アンダーラインなどのテキストの装飾とは異なります。装飾に関してはTextBlockでも利用することができます。