外部リソースを定義したい
WPFでアプリケーションを作ってるとStyleの定義を一箇所にまとめたくなる時が来ます。
いわゆるDRY原則ですね。
そのための方法をこれから示したく
- -
参考:
連載 WPF/Silverlight UIフレームワーク入門:第3回 “見た目”を決めるリソースとスタイル (2/3) - @IT
エッセンスだけ抽出します。
①まずDictionaryファイルを作成します。これはVisualStudioであればプロジェクトを右クリック→追加→リソースディクショナリで作ってくれます
②Dictionaryファイルの最小限の構成
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <b><SolidColorBrush x:Key="BlueBrush" Color="Blue"/></b> </ResourceDictionary>
太字になってるところを追加するのです。はい。
見ればわかると思いますがSolidColorBrushのリソースを定義してる所です。
③リソースの適用
<Grid> <Grid.Resources> <ResourceDictionary Source="ResourceDictionary1.xaml"/> </Grid.Resources> <Ellipse Fill=<b>"{StaticResource BlueBrush}"</b> /> </Grid>
太字になってるところで適用してます。
ただ、適用できるようにするためには小細工が必要で
④リソースファイルの読み込み
C#でいうusing文ですね。
<StackPanel> <StackPanel.Resources> <ResourceDictionary Source="Dictionary1.xaml"/> </StackPanel.Resources> </StackPanel>
ソースの所にファイル名を指定してあげる必要があるわけです(この場合Dictionary1.xamlという名のファイルを作成した)。
以上が外部リソースを読み込むための最低限の方法になります。あとはこの応用編ですね。