2010-11-24 7 views
1

J'ai un problème avec un simple rendu de liste déroulante sous XP.WPF Combobox rendu sous XP

Le code est juste:

<ComboBox Cursor="Hand" customCommands:ComboBoxSelectionChange.Command="{Binding StatusChange}" ItemsSource="{Binding AvailabilityStatusList}"/> 

Cependant, le résultat sur différents systèmes d'exploitation ne sont pas tout à fait, je l'ai attendu:

Vista: Combobox Vista
XP: Combobox XP

Répondre

3

Vous pouvez forcer une application WPF à appliquer un certain schéma standard Windows, quelle que soit la version actuelle de Windows (XP ou Vista par exemple).

Pour forcer votre application à utiliser le thème Aero (Vista), mettez dans votre App.xaml:

<!-- Use the Aero scheme for your application, regardless the currently applied Windows Theme or OS Version. --> 
    <ResourceDictionary 
     Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, 
     PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" /> 
+0

Merci, c'est exactement ce que je cherchais! Puisque notre application n'utilise pas le schéma de couleurs du système d'exploitation (il utilise des fenêtres transparentes et personnalisées), il n'apparaîtra pas aussi bizarre, même sur des thèmes personnalisés. Le seul problème qui existe encore est la différence entre la taille de la police sur XP et Vista/7. – sagibb

+0

Wow !! Je ne savais pas que tu pouvais faire ça. Très impressionné. – Eddie

1

Le ComboBox - comme la plupart des autres contrôles, prend en compte le thème du système d'exploitation, de sorte que votre interface utilisateur soit cohérente avec le reste de la surface du système d'exploitation.

Si vous voulez créer un look "OS-agnostic" (c'est-à-dire garder le même aspect sur différents systèmes d'exploitation), vous devez le re-template.

+0

Je ne veux pas vraiment (ou besoin) de re-modèle, je veux juste pour avoir l'air décent. Vous pouvez clairement voir dans la capture d'écran que le résultat standard sur XP est déformé. – sagibb

+0

Il n'est pas déformé. C'est juste que vous devez définir sa hauteur. Essayez Hauteur = "20" et cela ressemblera magiquement à ce que vous voulez. –