WPF

C#WPFの道#7!コントロールのスタイル定義のやり方をわかりやすく解説!

スタイル定義とは?

WPFではコントロールごとにデフォルトのスタイルを定義することができます。例えばラベルの背景色は「青」、文字の色は「白」という風に決めておくと、どの画面でラベルを生成しても、同じ背景色や文字の色で表示されることになり、アプリケーション全体に統一感を持たすことができます。

スタイル定義の書き方

WPFのプロジェクトを作成したときに、自動で生成されるApp.xamlファイルのApplication.Resourcesエリアに、Style TargetType=”Label”という感じで記述します。”Label”の部分は、スタイルを設定したコントロール名を指定します。そのあとにSetter Propertyでプロパティ名を指定し、Value=に値を指定します。

個別で異なる設定をしたい場合

Styleで指定した値はデフォルト値になるので、画面に指定するコントロールに特に指定しなければ、デフォルト値で動作しますが、場合によっては、個別で背景色などを変更したい場合などがよくあります。そういった場合は、Xamlでコントロールを指定するときに背景色などを指定すれば、上書きでプロパティの値が設定されるため、個別での異なる設定が可能です。

サンプルコード

次の例ではLabelを3個、Buttonを3個設置し、Application.Resourcesのスタイル設定がどのように機能しているかを確認できます。

Label用のスタイルとButton用のスタイルを作成し、それぞれ背景色、文字色、フォントサイズを指定しています。

LabelとButtonを3個設置していますが、背景色、文字色、フォントサイズを指定していないコントロールは、Application.Resourcesで設定したそれぞれの値になり、背景色などを指定したコントロールは、それぞれ指定した値に上書きされていることが確認できます。

WPFの道!

C#を正しい3層構造で造れてますか?

非売品コースを受け取る