2010-11-23 6 views
5

Je suis un codeur expérimenté qui essaie d'apprendre C# et WPF. Maintenant, je suis un peu scrupule pour les détails, et je veux m'assurer que mes applications se fondent dans le reste de l'interface utilisateur. Cependant, je ne peux pas sembler faire cela en utilisant un ListView. Ma configuration est simple - ajouter un ListView à ma fenêtre, lier à un ObservableCollection de mon choix, et exécutez l'application.Rendre WPF Listview adhérer au thème Windows

Le résultat est que les éléments apparaissent très bien (que ce soit sans contenu significatif). Cependant, le rectangle de sélection sur un ListView est toujours le bleu foncé qui me renvoie aux jours pré-XP par opposition à la sélection thématique plus propre que vous avez en utilisant le style visuel par défaut de Windows 7. Pour voir ce type de sélection en action, il suffit de sélectionner un fichier dans l'explorateur, ou pour un autre exemple, regardez dans les Programmes et fonctionnalités dans le Panneau de configuration. Cela a l'air gentil et lisse.

Comment puis-je faire en sorte que WPF traite correctement mon ListView en fonction de mes paramètres utilisateur? Je ne veux pas réinventer le code de sélection entier et ajouter des tonnes de style et doodahs comme ça - je veux une application Windows simple qui semble bien. Le bouton fonctionne très bien, les boîtes de texte fonctionnent bien, les comboboxs ont l'air bien, etc. C'est juste le ListView qui a l'air complètement merdique. Je n'ai aucun problème à utiliser un autre contrôle (très, de préférence pas un tiers) si nécessaire, mais je veux une liste d'éléments qui semble natif et j'approche une disposition similaire à l'option Tiles dans l'Explorateur pour chaque élément sélectionné (icône, desc, ligne d'information supplémentaire). Le défilement vertical est seulement ce dont j'ai besoin.

Répondre

4

Si vous utilisez un ListView avec ListView.View défini sur un GridView, vous obtenez un aspect assez similaire à celui de Windows 7 Explorer. (Au moins à mon avis, ou est-ce le regard dont vous parlez?). Il suit également le thème actif

Exemple 1. ListView avec GridView à droite. Sélection active

alt text

Exemple 2. ListView avec GridView vers la droite. Sélection inactif

alt text

Exemple 3. Utiliser Contraste élevé Thème # 2

alt text

+1

Oh la vache sainte, est _that_ l'affaire. J'ai regardé toute une journée pour ce genre d'effet. Mon seul antipathie est que quelque chose ne va pas avec la couleur - la variété WPF semble avoir perdu tout son sens avec le gamma ou la saturation ou quelque chose comme ça. Shinier? Je ne sais pas comment l'appeler; vous pouvez le voir assez bien sur votre exemple. As-tu trouvé un correctif pour ça? (Mon but est toujours de regarder aussi natif que possible.) – Stigma

+0

Oui, j'ai remarqué que la première fois que je l'ai vu aussi :) Aucune idée de pourquoi ils n'ont pas utilisé exactement les mêmes couleurs que dans l'explorateur. Désolé, je n'ai pas de solution pour ça non plus. Je crains que votre seule option soit de créer vos propres couleurs et de les utiliser, mais cela n'en vaut pas la peine. –

+0

Assez juste. Merci d'avoir répondu à une question que j'ai cherché sur Google pour trouver une solution à toute la journée. – Stigma