Combobox-Hintergrund wird in Windows 8 nicht angewendet

Ich bin ein wenig verwirrt mit wpf-Themen. Ich möchte, dass die wpf-Bildschirme unter Vista, Windows 7 und Windows 8 gleich aussehen. Daher habe ich die Komponenten entsprechend angepasst und sie stellen keine Probleme dar, es sei denn, sie werden unter Windows 8 ausgeführt. Zum Beispiel habe ich eine Combobox und das bin ich Ändern Sie den Standard-Hintergrund in XAML wie folgt.

<Style TargetType="{x:Type ComboBox}" >
    <Setter Property="FontStyle" Value="Normal"/>
    <Setter Property="Height" Value="24" />
    <Setter Property="Background" Value="{StaticResource GradientButtonBackgroundBrush}"/>
</Style>

Die Hintergrundeigenschaft der Combobox hat in Windows 8 keine Auswirkung und ich erhalte nur ein flaches Rechteck mit einem Pfeil auf der rechten Seite (die Standard-Combobox von Windows 8, die ziemlich schlecht gestaltet ist!).

Meine Frage ist also, wie ich die Combobox auf allen Windows-Versionen gleich aussehen lasse. Ich habe versucht, das Windows Aero-Design wie unten beschrieben in meine App.xaml aufzunehmen, aber es hat keine Auswirkungen auf die Anzeige der Combobox. Hier ist, wie ich das Aero-Thema hinzugefügt habe

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/aero.normalcolor.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

Es gibt auch einen weiteren Zweifel in Bezug auf Themen. Ich baue die wpf-Anwendung auf einem Windows 7-Computer, auf dem (meiner Meinung nach) standardmäßig Aero Theme eingestellt ist. Alle meine Stile basieren auf dem Aero-Thema, wenn sie auf einem Windows 7-Computer angezeigt werden. Was passiert, wenn ich die Anwendung auf XP starte? Muss ich dann einen Eintrag für das Ressourcenwörterbuch (Aero-Thema) in App.xaml hinzufügen, wie im obigen Code aufgeführt?

Ich weiß, dass meine Frage etwas vage ist, aber glauben Sie mir, ich bin wirklich verwirrt mit Standardthemen von wpf auf verschiedenen Windows-Versionen.

BEARBEITEN: Ich kann Combobox immer noch nicht dazu bringen, nach meinen Bedürfnissen zu stylen. Das Kombinationsfeld sieht immer noch wie ein graues Rechteck aus.

Hier ist was ich getan habe. Ich habe die Datei Aero.NormalColor.xaml von der Microsoft-Website heruntergeladen und in den Themenordner der Anwendung aufgenommen. Dann habe ich folgendes in App.xaml hinzugefügt

    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Themes/Aero.NormalColor.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>

Dann habe ich die Anwendung kompiliert und unter Windows 8 bereitgestellt. Immer noch dieselbe Combobox wie zuvor. Beachten Sie, dass alle anderen Elemente dem Thema entsprechend korrekt gestaltet werden. Ich habe dasselbe mit Luna.Metallic.xaml gemacht und jedes Element mit Ausnahme desKombinationsfeld.

Ich glaube das, wenn ich ein bestimmtes Thema lade, das Stile mit definiertControlTemplate, dann sollte es per wpf abgeholt werden. Ich bin verwirrt, warum nur dieKombinationsfeld Auch wenn Sie ihm eine Aero (oder Luna) Kontrollvorlage geben, ändert sich ihr Aussehen nicht. Irgendwelche Ideen ?

EDIT-2 Screenshot des Erscheinungsbilds der Combobox unter Windows 8

Antworten auf die Frage(5)

Ihre Antwort auf die Frage