リソースディクショナリを分割する際の注意点

WPFのスタイルやカスタムコントロールのテンプレート等は、リソースディクショナリファイル(Generic.xaml)に記述するんだけど、コントロールを作る度にファイルがどんどん大きくなっていく。探すのが大変。ワケワカメになってくる。
そうなる前に、リソースディクショナリの分割を検討する。仕事では、カスタムコントロール毎にxamlを作り、標準コントロールに対するスタイル設定等は、Generic.xamlに記述するようにしている。
分割する際は、MergedDictionariesを使う。

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- External Resource Dictionary -->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/XXXXX;component/Themes/YYYYYY.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
XXXXXは、アセンブリ名、YYYYYYはリソースディクショナリ名となる。
WPF4にも起こりうる問題かどうかは定かではないのだけれど、最適化処理によるバグが存在するらしい。
Adding a Merged Dictionary to a Merged Dictionary
MSへのリンクは既にない感じなので、どうなっているかが確認できない…。
解決策(回避策)も載っているので、まあ、その通りにしておこうとなった次第。
新たにカスタムコントロールライブラリ作るときに忘れないようにするためのメモ。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m