0
私のアプリケーションでテーマサポートを実装したいと思います。私は外部アセンブリでResourceDictionariesを使用して実行する方法を知っており、実行時にそれを適用しますが、カスタムテーマ設定やカラーパレットを使用するテーマを有効にしたいと考えています。私はそれをする最善の方法が何かを知らない。WPFのテーマとカスタムテーマの設定
私の考えでは、このようなマークアップを使用して、テーマを宣言することができることです。
<Theme Name="MyTheme"
Description="Simple example theme"
Icon="MyTheme.ico"
Thumbnail="thumbnail.png">
<Theme.Settings>
<Setting Key="EnableShadows" Text="Enable theme shadows" Type="{x:Type system:Boolean}" Value="True"/>
</Theme.Settings>
<Theme.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="MyTheme.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Theme.Resources>
</Theme>
さて、このコードスニペットは、それが行うことができるただ一つの方法です。私の質問は、WPFでこのようなことをどうやって行うことができるか(テーマとしてこのように使用できるテーマクラスを作成する方法)です。
私はResourceDictionaryクラスを継承していました。さまざまなタイプのカスタムResourceDictionariesをマージしてツリーを作成することで、各辞書タイプにカスタムプロパティを実装できるようになりました。 ThemesManagerクラス。 これは、名前、アイコンなどの独自のプロパティを持ち、(ResourceDictionaryから継承された)複数のSubThemeクラスとColorThemeクラスを内部でマージした、ResourceDictionaryから継承したThemeクラスを持つことができます。 –