Ein WrapPanel, bei dem die Auswahl das Panel so teilt, dass eine Detailansicht angezeigt wird?

8
  • Scrollen ist horizontal
  • Berührungsgesteuert.
  • Elemente fließen abwärts und dann in die nächste Spalte
  • Durch Berühren eines Elements wird das Bedienfeld zu einem bestimmten Punkt verschoben, sodass die Detailansicht immer an derselben Stelle angezeigt wird.
  • Die nächste Spalte würde "abbrechen" und nach rechts animieren, um einen Detailbereich im Kontext des ausgewählten Elements anzuzeigen.
  • Wenn Sie ein beliebiges sichtbares Objekt (in einer anderen Spalte) berühren, wird das enthüllte Detail "geschlossen", das neue ausgewählte Objekt wird zum linken statischen Punkt animiert und die nächste Spalte wird wieder entfernt, um das Detail zu zeigen. Wenn Sie ein beliebiges sichtbares Element in derselben Spalte berühren, wird einfach eine ausgeblendete Animation ausgeführt.

Hier sind ein paar einfache Mocks:

90% davon sind einfach für mich, aber der Prozess, ein Wrap-Panel zu erstellen, das sich selbst "trennen" kann, um einen Gegenstand zu enthüllen, entzieht sich mir im großen Stil. Jeder Rat würde geschätzt werden.

    
erodewald 05.03.2013, 16:16
quelle

2 Antworten

2

Eine der Lösungen ist:

Sie können die Schaltflächen innerhalb des Wrap-Bereichs ( innerhalb des Rasters ) durch Ändern der Ränder einiger Bereiche voneinander trennen (natürlich müssen Sie auch die Größe des Fensters ändern, wenn Sie die Größe der Schaltflächen beibehalten möchten) Vermeiden Sie es, sie in die nächste Zeile zu verschieben).

Zum Beispiel, wenn Sie 4 Spalten und drei Reihen von Schaltflächen namens button 1,2,3 usw. haben ... Wenn der Knopf von der ersten Spalte angeklickt wird, erhalten die Tasten 2,6,10:

%Vor%

Dadurch werden alle Schaltflächen auf der rechten Seite um den Wert des Variablenraums verschoben;

Und dann

%Vor%

Und dann TextBox, die Kinder des Gitters ist, an geeigneter Stelle mit der Breite Platz finden.

Beim Rückgängigmachen

%Vor%

Es hat gut für mich funktioniert, aber ich bin neugierig auf andere Lösungen.

    
Arek 05.03.2013 17:36
quelle
2

Das hörte sich nach einer lustigen Aufgabe an, also habe ich beschlossen, etwas nach Ihren Vorstellungen zu implementieren. Ich dachte, ich könnte es teilen, damit Sie es verbessern oder es nach Ihren Wünschen verwenden können. Erstens, diese Aufgabe übersteigt meine Fähigkeiten, in only XAML zu implementieren. Ich sage nicht, dass es nicht gemacht werden kann, nur dass es ein bisschen schwierig ist. Stattdessen habe ich meinen eigenen Panel-Typ implementiert (namens GapPanel ). Das klingt vielleicht noch schlimmer, aber es gibt trotzdem ein paar nette Dinge, wie die Möglichkeit, RoutedEvent s zu implementieren, um in XAML auf Animationen zu reagieren.

Also, hier ist die Last von Code. Zuerst das XAML

%Vor%

Und das (Gräuel) eines Panels ..

%Vor%

Hinterlasse einen Kommentar, wenn du etwas brauchst, das ich erklären muss.

Ich kann auch nicht helfen, das Buch "WPF4 Unleashed" von Adam Nathan zu promoten. Viel, wenn nicht alles, was ich oben getan habe, wird in diesem Buch sehr ausführlich erklärt, also ist es eine großartige Quelle für jeden, der mehr über WPF erfahren möchte.

    
Patrick 06.03.2013 03:04
quelle

Tags und Links