2013年06月07日

WPFサンプル:Styleを使いコントロールの既定のプロパティ値を変更する

   このエントリーをはてなブックマークに追加 Clip to Evernote
WPFには、スタイルというプロパティの値の集合を複数の要素に適用する機能があります。 コントロールのプロパティ地の規定値を変更し、外観を変えるのに便利です。 今回は、そのスタイルにお簡単なサンプルです。
まずは、スクリーンショットを示します。

style1

XAMLの全体は、最後に示しますが、このXAMLはなにやら、長めのXAMLですが、ひとつひとつ分解すれば、そほど複雑なことはやっていません。
スタイルはリソースとして定義するのが一般的です。Window.Resources に3つの Style を定義しています。
一つめは、TextBoxの規定値を変更するStyleです。


TargetTypeプロパティで、どの型にスタイルを適用するのかを指定します。
このように定義することで、このWindowに配置する すべてのTextBoxに、このStyleで指定した プロパティの値が適用されます。
Styleタグの中では、Setterタグを利用し、TargetTypeプロパティで指定した型が持つプロパティの値を設定します。
Propertyでは設定したいプロパティの名前、Valueでは、その値を指定します。 Styleはその型のプロパティの初期値を定義していることになりますので、 TextBlockやButtonのタグでプロパティの値を設定してやれば、そちらが優先されます。

2つめは、ButtonのStyleで、TextBoxと同様にButtonのプロパティ値を変更しています。

最後は、TextBlockのStyleを定義していますが、一部の TextBlockに 当該Styleを適用する例です。
x:Key属性を記述していますが、こうすることで、一部のコントロールだけにスタイルを適用させることができます。
その際は、Style="{StaticResource textBlcokStyle}"のように、どのスタイルを適用するのかを コントロール側で指定してあげます。


TextBlock側では、以下に示すようにStyleプロパティで、Window.Resourcesに定義したStyleを指定することで、 Styleを適用させています。


なお、C#のコード側でStyleを適用するには、以下のように記述します。


当サンプルのC#のコードと全体のXAMLを掲載します。





 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52322744