Gibt es eine Möglichkeit, Leerzeichen in WrapPanel automatisch zu belegen?

8

Die Children of WrapPanel werden sequentiell wie angehängter Screenshot ausgefüllt.

Daher macht das Panel je nach Länge jedes untergeordneten Elements viel Platz.

Wie kann ich den leeren Raum nutzen, um die Kinder neu zu ordnen?

Es scheint, dass nur wenige Leute bisher WrapPanel verwenden und keine ausreichenden Beispiele.

Gibt es dafür einen automatischen Weg? Oder muss ich nur einen eigenen Algorithmus erstellen?

Das WrapPanel spielt eine sehr wichtige Rolle, um Dinge anzuzeigen, hat aber nur wenig Platz zum Anzeigen.

Danke!

    
Kay Lee 16.12.2017, 06:13
quelle

4 Antworten

3

Hier ist ein WrapPanel, das Elemente optional mit dem FFDH-Algorithmus neu anordnen und optional strecken kann, um leere Bereiche zu entfernen ( Beispiel ).

%Vor%     
Surfin Bird 20.12.2017, 16:29
quelle
2

Sind alle Ihre Elemente im WrapPanel derselben Höhe? Beginnen Sie in beiden Fällen mit einem TreeMap-Steuerelement wie Ссылка und passen Sie es an?

EDIT 1 - Basierend auf dem Kommentar

Es sollte nicht zu schwierig zu implementieren sein - Ich bin ziemlich sicher, dass die minimale Funktionalität, die Sie brauchen, durch Erben von einem Panel und Hooking der neu anordnen Code in seiner MeasureOverride und ArrangeOverride Methoden abgezogen werden kann. Schauen Sie auch hier nach (implementiert eine ähnliche Kontrolle), könnte ein guter Anfang sein, wenn Sie dies tun: Ссылка

    
jester 19.12.2017 14:20
quelle
2

Dieses einfache Panel sollte die Aufgabe erfüllen:

%Vor%     
Clemens 20.12.2017 14:30
quelle
1

Sie benötigen dafür einen benutzerdefinierten Algorithmus. Ich glaube, dass die StretchyWrapPanel hier ein guter Anfang ist. Nachdem Sie die untergeordneten Elemente gemessen haben, können Sie sie mit benutzerdefinierter Logik sortieren (z. B. bin packing ).

    
l33t 19.12.2017 15:02
quelle

Tags und Links