タブ コントロールにデータを表示する WPF アプリケーション (.NET 3.0、VS2008) があります。このアプリケーションの実質的にすべてのコントロールで、カスタム カラーが必要です。基本的には、前景は白、背景は緑です。
私の問題は、XP テーマ (Luna など) がアクティブな場合、レンダリング コントロールに自動的に適用され、白いテキストが白い背景に書き込まれることです。たとえば、アクティブなタブ項目ヘッダーで:
私が試してみました :
- 埋め込まれたマニフェスト ファイルを生成されたアプリケーション (プロジェクト プロパティ内) から削除するには: 役に立ちません。
アプリケーション リソースで Windows クラシック テーマの使用を強制するには、次のようにします。
<ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/PresentationFramework.Classic;V3.0.0.0;31bf3856ad364e35;component/themes/classic.xaml" /> </ResourceDictionary.MergedDictionaries>
この最後の試行は、上記のように表示されるタブ コントロールを除いて、すべてのコントロールでうまく機能しました。
何か案が ?
更新:この動作は、タブコントロールに適用する必要があるカスタムスタイルが原因であると思われます:
<Window.Resources>
<Style x:Key="Custom">
<Setter Property="Control.Background" Value="#FF47C7C8" />
<Setter Property="Control.Foreground" Value="White" />
</Style>
<Style TargetType="TabControl" BasedOn="{StaticResource Custom}" />
</Window.Resources>
では、カスタム カラーを使用してクラシック テーマを取得するにはどうすればよいでしょうか。