2010-11-23 7 views
5

Ich bin ein erfahrener Programmierer, der versucht, C# und WPF zu lernen. Jetzt bin ich ein bisschen ein Verfechter von Details, und ich möchte sicherstellen, dass meine Anwendungen in den Rest der Benutzeroberfläche passen. Allerdings kann ich das anscheinend nicht mit einem ListView machen. Meine Einrichtung ist einfach - fügen Sie ein ListView zu meinem Fenster hinzu, binden Sie an eine ObservableCollection meiner Wahl, und führen Sie die Anwendung aus.Machen Sie WPF Listview an das Windows-Thema zu halten

Das Ergebnis ist, dass die Elemente problemlos geöffnet werden (sei es ohne sinnvollen Inhalt). Das Auswahlrechteck auf einer ListView ist jedoch immer das Dunkelblau, das mich zurück zu den Pre-XP-Tagen im Gegensatz zu der saubereren thematischen Auswahl, die Sie verwenden, den Standard Windows 7-visuellen Stil verwendet. Um diese Art von Auswahl in Aktion zu sehen, wählen Sie einfach eine Datei im Explorer aus oder suchen Sie ein anderes Beispiel in den Programmen und Funktionen in der Systemsteuerung. Das sieht gut und glatt aus.

Wie kann ich WPF bekommen, um mein ListView abhängig von meinen Benutzereinstellungen richtig zu gestalten? Ich möchte nicht den gesamten Auswahlcode neu erfinden und jede Menge Styling und Dodahs hinzufügen - ich möchte eine einfache Windows-Anwendung, die gut aussieht. Der Button funktioniert gut, Textfelder funktionieren gut, Comboboxen sehen gut aus, usw. Es ist nur das ListView, das total scheiße aussieht.

Edit: Ich habe keine Probleme eine andere Verwendung (sehr, sehr bevorzugt kein Dritter) Kontrolle bei Bedarf, aber ich will tun, um eine Liste der Elemente, die native aussieht und ich Ansatz ein ähnliches Layout wie die Fliesen Option im Explorer für jeden ausgewählten Gegenstand (Symbol, Beschreibung, zusätzliche Zeile der Info). Ich brauche nur vertikales Scrollen.

Antwort

4

Wenn Sie eine ListView mit ListView.View auf eine GridView festgelegt verwenden, dann erhalten Sie ein ziemlich ähnliches Aussehen wie Windows 7 Explorer. (Atleast meiner Meinung nach, oder ist das der Blick, über den du redest?). Es folgt auch das aktive Thema

Beispiel 1. ListView mit GridView auf der rechten Seite. Auswahl aktiv

alt text

Beispiel 2. Listview mit Gridview nach rechts. Auswahl inaktiv

alt text

Beispiel 3. Verwendung von High Contrast Theme # 2

alt text

+1

Oh heilige Kuh, so _that_ ist der Trick. Ich habe einen ganzen verdammten Tag für diese Art von Effekt gesucht. Meine einzige Abneigung ist, dass etwas an der Farbe fehlt - die WPF-Sorte scheint verrückt geworden zu sein mit Gamma oder Sättigung oder so ähnlich. Shinier? Ich weiß nicht, wie ich es nennen soll; Du kannst es an deinem Beispiel gut sehen. Pass auf, eine Lösung dafür zu finden? (Mein Ziel ist immer noch so nativ wie möglich auszusehen.) – Stigma

+0

Ja, das ist mir aufgefallen, als ich es das erste Mal gesehen habe :) Keine Ahnung, warum sie nicht genau die gleichen Farben wie im Explorer verwendet haben. Entschuldigung, ich habe auch keine Lösung dafür. Ich fürchte, deine einzige Möglichkeit ist es, deine eigenen Farben zu kreieren und sie zu benutzen, aber das ist es kaum wert. –

+0

Fair genug. Danke, dass Sie eine Frage beantwortet haben, die ich gegoogelt habe, um den ganzen Tag eine Lösung zu finden. – Stigma