0

デフォルトのスタイルを少し変更して、一般的なパディングやマージンなどを追加する WPF アプリケーションがあります。私は通常Window.Resources、ウィンドウまたはアプリケーションのリソースにロードするリソース ディクショナリまたはリソース ディクショナリでこれを行います。スタイルの例は次のとおりです。

<Style TargetType="{x:Type Button}">
    <Setter Property="Margin" Value="5" />
</Style>

ここまでは順調ですね。ただし、ユーザー コンポーネントではなく、既定のコンポーネントを変更していることに注意してください。

今日、Windows 8 で使用されているAero2テーマには、Windows 7 のAeroテーマとは異なる標準スタイルがいくつか付属していることに気付きました。残念ながら、両方で機能する一般的なスタイルを実際に作成することはできませんでした.

そのため、ユーザーが使用しているテーマに応じて、さまざまなスタイルを指定できるようにしたいと考えています。たとえば、ユーザーがAeroを使用している場合はをロードしAero-styles.xaml、 Windows 8 でAero2を使用している場合は代わりにロードしたいとしますAero2-styles.xaml

Themesディレクトリを使用し、Aero.NormalColor.xamlAero2.NormalColor.xaml. 残念ながら、それはカスタムコントロールでのみ機能するようですが、組み込みコントロールでは機能しません。また、利用可能なキーを静的/動的参照として使用できるようにもしません。

これを行う方法はありますか?カスタマイズを含むベース リソース ディクショナリを提供してから、使用するテーマを微調整した別のテーマ依存ディクショナリを提供するには?

4

1 に答える 1

-1

起動時に (UI が読み込まれる前に) テーマを検出し、適切な ResourceDictionary を Application.Resources.MergedDictionaries に動的に追加します。これは私にとってはうまくいきました。

于 2013-09-26T14:20:09.157 に答える