2

わかりました、これは今私を夢中にさせています。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を台無しにしているということです。隠されたプロジェクトファイルか何かにあるかもしれませんが、私にはわかりません。

誰か助けてくれますか?

4

0 に答える 0