私はSilverlight4を使用していて、いくつかの一般的なスタイル(色、ブラシ)を共有しようとしています。私の考えは、それらを「Common.xaml」リソースディクショナリに入れてから、他のすべてのリソースディクショナリで使用することでした。そのようなすべてを参照する:
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="SampleApp.App"
>
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Styles/Common.xaml"/>
<ResourceDictionary Source="Assets/Styles/TextBoxStyle.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
問題は、InitializeComponentで、一般的なスタイルが見つからないことを示す例外が発生することです(名前/キーを持つリソースが見つかりません...)。
使用するすべてのリソースディクショナリで「Common.xaml」を明示的に参照する必要があります。これにより、基本的に、「Common.xaml」に存在するすべての色、ブラシ、テンプレートなどの複数のインスタンスが生成されます。
リソースを共有する方法がないので、Silverlightで一度だけインスタンス化されますか?