5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【WPF】スタイルの共通化方法

Last updated at Posted at 2019-11-16

はじめに

はじめまして、現在仕事でWPFを使用した開発を行っているdaitenと申します。
本記事は、仕事にて学んだことを備忘録的な感じで書いていきますので、何か誤りがありましたらご指摘頂けますと幸いです。
また今後も新たに学んだ部分は記事を修正、追加などしていく予定です。

スタイルの共通化とは

Xamlによって記述されたコントロールはそのプロパティの値を変更することによってデザインや挙動などを変更することができる。
そのプロパティの値を複数のコントロールで共有するために値のリソースを別の場所に定義し、そこの値を参照することで共通化を行うことができる。

StaticResourceを使用した共通化

静的(Static)なリソースでアプリの実行時のリソースは常に固定される
例えば以下のようにWindowのリソース内にButtonを対象とするButton_RedというKey名のリソースを配置し、ButtonからはStyleプロパティにStaticResourceで参照させています。
このようにすることで複数のButtonで、共通の背景色を設定することができます。
スクリーンショット 2019-11-16 22.33.11.png

共通化項目の設定方法

共通化したいプロパティの設定方法はSetterとValueを使用して設定を行います。
まずSetterで共通化したいプロパティを指定し、Valueで値を設定します。
スクリーンショット 2019-11-16 23.21.51.png

ネストしたスタイルの共通化方法

Styleの内部でStyle.Resourceを定義することで、共通化を行うことができます。
以下の例はStackPanelに配置したButtonの背景色を赤にするよう共通化を行ったものです。
手順としてはまずWindow.Resource内にStackPanelのスタイルのリソースを定義し、その内部でStyle.Resourceを定義することでStackPanel内に指定したコントロールを配置した場合(今回の場合はButton)にスタイルが適用されます。
スクリーンショット 2019-11-16 23.43.25.png

参考

5
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?