Für WPF/Silverlight-Layout, ist es besser, ein Grid mit vielen Zeilen und Spalten oder Tonnen Stackpanels zu verwenden?WPF Grid vs Stackpanel
Antwort
Sie sollten ein Raster verwenden, wenn Sie Dinge horizontal und vertikal ausrichten müssen. Verwenden Sie ein StackPanel, um eine Reihe oder Spalte von Dingen zu erstellen, wenn diese Dinge nicht mit anderen Elementen übereinstimmen müssen.
Beschränken Sie sich jedoch nicht auf diese beiden Optionen. Schauen Sie sich insbesondere das DockPanel an. Es ist etwas komplexer als ein StackPanel, aber sein Markup ist nicht so überladen wie das Grid. Hier ist ein guter Artikel über die DockPanel:
Ich habe keine Erfahrung mit solch einem Layout, aber ich wette, dass das Raster im Vergleich zu vielen verschachtelten Stackpanels einfacher zu rendern ist.
Der Container, den Sie verwenden, sollte auf dem Inhalt basieren und nicht darauf, ob ein Ansatz besser ist als ein anderer. Wenn Sie Dinge horizontal und vertikal ausrichten möchten, sollten Sie ein Gitter verwenden. Aber abgesehen davon hängt es wirklich von dem Inhalt ab, den Sie anzeigen möchten.
Ich denke, das Grid ist eine bessere Idee. Normalerweise richte ich das allgemeine Layout mit einem Grid ein und benutze hier und da ein paar Stackpanels, um bestimmte Dinge zu tun. Ich habe auch das Gefühl, dass die Performance mit Grids besser ist und dass Grids generell mehr Flexibilität bieten.
Ich glaube nicht, Grid ist eine bessere Idee.
zum Beispiel, wenn Sie eine Zeile zu bestehenden Grid Layout-Dokument (in der Mitte) eingefügt werden sollen
dort exising Reihe 1,2,3,4, dann ist die Anforderung, neue Zeile zwischen 1 einzufügen und 2.
dann mußte man 2,3,4 zu 3,4,5 (finden Sie alle Tag eine Änderung ....)
überdenken ändern, wenn eine Zeile hat 3 bis 5 Spalten ... es ist ein schmutziger Job, alles digital neu zu ordnen. !!!
Ich bevorzuge das StackPanel, weil ich es leichter finde, Änderungen vorzunehmen, wenn neue Elemente, Zeilen oder Spalten eingefügt werden. Mit einem Raster müssen Sie Zeilennummern und Spaltennummern lesen, um herauszufinden, wo Sie sich befinden. Mit einem StackPanel folgen Sie einfach der Verschachtelung, dies ist einfacher und weniger unordentlich als ein Raster.
Zum Beispiel verwende ich in einer XAML-Seite ein horizontales Stack-Panel wie ein übergeordnetes Raster, und wenn ich eine Spalte brauche, habe ich ein separates "vertikales" Stackpanel verschachtelt. Auf diese Weise wird ein horizontales Stackpanel zu einem "Grid" und die verschachtelten vertikalen StackPanels zu den Spalten. Ich finde es einfacher, diese Zeilen und Spalten in einem Raster zu lesen und zu ändern.