わかりました、これは今私を夢中にさせています。Silverlight5プロジェクトがあります。少し前に、プロジェクトをもっとポップにするために、プロジェクトにテーマを設定することにしました。テーマの実装を見つけて先に進みました。
最初に、SilverlightToolkitの.Theming名前空間を使用しました。明示的にビルドしたtheme.dllを使用しました。ただし、これには、テーマをカスタマイズする機能がないという欠点がありました。そこで、代わりにtheme.xamlを使用し、を使用して実装することにしました<MergedDictionaries>
。
ただし、このアプローチの問題は、デザイン時にテーマを表示できなくなったことです。実行時には正常に動作します。しかし、テーマをカスタマイズしたくない場合は、それだけでは十分ではありません。
App.Xamlでマージされた辞書を使用してテーマを実装しました
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/eCP;component/Themes/WhistlerBlue.xaml"/>
</ResourceDictionary.MergedDictionaries>
<vm:ViewModelLocator x:Key="ViewModelLocator"/>
</ResourceDictionary>
</Application.Resources>
MainPageに同じブロックを配置すると、デザイン時にテーマが即座にオンになります。しかし、Silverlightのすべてのページでそれを行う必要はありませんか?
つまり、App.xamlのMergedDictionariesを使用してテーマを実装すると、デザイン時に機能しません。特定のページでそれを行うと、機能します。
面白いことに、Expression Blendでプロジェクトを開くと、デザイン時に問題なく動作します。
私の最初の考えは、何かが私のVisual Studio2010SP1を台無しにしているということです。隠されたプロジェクトファイルか何かにあるかもしれませんが、私にはわかりません。
誰か助けてくれますか?