Es gibt mehrere Möglichkeiten zu erreichen, was Sie versuchen, hier zu tun. Wenn die Leistung kein Problem ist, würde ich die Virtualisierung ignorieren und versuchen, die DockPanel
Der Nachteil hier ist, dass Sie die Elemente in der Reihenfolge hinzufügen müssten, anstatt sie nach Zeile hinzuzufügen.
Eine andere Option wäre die Verwendung von zwei Stapelfeldern (eines in jeder Richtung). Dies behebt das Problem beim Hinzufügen, erfordert jedoch die Verwendung mehrerer Bereiche.
Beide der beiden vorherigen Optionen erfordern die Einstellung von Höhe/Breite für einzelne Elemente.
Eine letzte Option (abhängig davon, wie groß Ihr Raster ist) wäre die Verwendung eines Rasters mit Zeilen und Spalten fester Größe mit Elementen, die sich über Zeilen erstrecken (unter Verwendung der rowspan-Eigenschaft). Der Nachteil dieser Methode besteht darin, dass ich keine gute Möglichkeit kenne, dieses Steuerelement in xaml für eine nicht angegebene Anzahl von Zeilen/Spalten zu erstellen, sodass Sie es im Code erstellen müssten, um die benötigte Anzahl an Zeilen/Spalten zu erhalten.
Wenn Sie Leistungsprobleme haben, können Sie versuchen, die VirtualizingStackPanel verwenden. Wenn dies Ihren Leistungsanforderungen immer noch nicht entspricht, müssen Sie die VirtualizingPanel
Unterklasse erstellen und an Ihre spezifischen Bedürfnisse anpassen.
Weitere Informationen zur Panel-Leistung finden Sie unter here.
Ich schlage vor, die zwei StackPanel
Methode versucht zuerst, dann die VirtualizingStackPanel
Methode und schließlich, wenn das nicht funktioniert, dann versuchen Sie VirtualizingPanel
Padding leicht durch Einstellen der Margin
Eigenschaft auf jedem Substeuerelement erreicht wird.
Für den Einsatz Scrollen die ScrollViewer
was ist mit einem Wrap-Panel können Sie einen Scroll-Viewer es schaffen das Scrollen hinzufügen, und so lange, wie Sie Ihren Bildschirm in Ordnung zu bringen und die gleiche Höhe, die Breite und die Platzierung Ausgabe würde durch das Panel gelöst werden – Clueless