Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 

Re: Was für ne scharfe Auswahlleiste

  Alt 15. Jul 2007, 11:36
Zitat von Jelly:
Also die .NET Lösung würd mich auch interessieren, weil ich auf der Arbeit ausschliesslich mit .NET arbeite und den Chef beeindrucken will
Sodele, ich hab da mal was vorbereitet... .

Die einzelnen Schritte in Kurzfassung:
  1. Wie gewohnt (bzw. erfrischend ungewohnt im Vergleich zur Win32-GUI) das Layout erstellen und eine ListBox inkl. einiger Items hinzufügen. Schon werden die Vorteile von WPFs Lookless Controls ersichtlich: zum Einen können wir in eine stinknormale Listbox einfach ein Image oder formatierten Text werfen...
  2. ... zum Anderen können wir nun das Standard-Aussehen (Template) der ListBoxItems beliebig verändern, ohne die Logik der ListBox neu schreiben zu müssen. Es bleibt dabei: null Zeilen Code.
    In Blend gelangt man zum Template durch einen Rechtsklick auf das Item -> Edit Control Parts (Template)
  3. Zur Realisierung des Rahmens habe ich den ContentPresenter (also das Ding, in dem nachher der eigentliche Item-Inhalt landet) in ein Grid verpackt, um ein (abgerundetes) Rectangle darunter schieben zu können. Dem Rectangle geben wir mit zwei Klicks noch den richtigen AlphaMask-Gradienten und verkoppeln über einen Trigger seine Visible-Eigenschaft mit der IsMouseOver-Eigenschaft des Items. Fertig.
Man könnte natürlich noch ein wenig/ewig am Layout herumtweaken, Animationen einfügen (langsames Einblenden des Rahmens usw.) oder beispielsweise die linke Leiste noch ans Original anpassen, aber in erster Linie ging es ja darum, so einfach wie möglich den transparenten Rahmen zu realisieren.

Zu näheren Erklärungen stehe ich gerne bereit, WPF ist nicht gerade ein auf den ersten Blick erfassbares Gebiet.
Miniaturansicht angehängter Grafiken
listbox_745.png  
Angehängte Dateien
Dateityp: zip prettylistboxselection_206.zip (105,4 KB, 76x aufgerufen)
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat