Ich mache eine Benutzeroberfläche in WPF, ich habe eine Reihe von funktionalen Bereichen und ich verwende ein Grid, um es zu organisieren.Was ist besser in WPF für UI-Layout, mit einem Raster oder verschachtelte Grids
Jetzt ist das Grid, das ich möchte, nicht einheitlich, wie in einigen Funktionsbereich über mehrere Zellen im Grid erstreckt. Ich habe mich gefragt, was die beste Vorgehensweise ist, um das zu lösen. Sollte ich ein Gitter erstellen und dann für jeden Funktionsbereich festlegen, dass es sich über mehrere Zellen erstreckt, oder sollte ich es in mehrere verschachtelte Gitter aufteilen.
In diesem Bild ist das linke Panel (durch den grauen Balken getrennt) was ich will. Das mittlere Feld zeigt ein Raster, in dem die blauen Linien von einem Funktionsbereich überlagert sind. Das rechteste Feld zeigt, wie ich es mit verschachtelten Gittern machen könnte. Sie können sehen, dass das grüne Gitter eine horizontale Teilung hat. In der unteren Zelle befindet sich das gelbe Gitter mit einer vertikalen Teilung. In der linken Zelle befindet sich das rote Gitter mit einer horizontalen Teilung. Grids http://www.freeimagehosting.net/uploads/08f2711bae.jpg
Ich habe mich gerade gefragt, was ist die beste Praxis, das mittlere oder das rechte Panel.
UPDATE: Nur zur Klarstellung, eine 'Code orientierte' Beispiel:
Die Mitteltafel
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Menu Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" />
<uc:Info Grid.Row="1" Grid.Column="0" />
<uc:Control Grid.Row="2" Grid.Column="0" />
<uc:Simulation Grid.Row="1" Grid.Column="1" Grid.RowSpan="2" />
</Grid>
Die Rechts:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Menu Grid.Row="0"/>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<uc:Info Grid.Row="0" />
<uc:Control Grid.Row="1" />
</Grid>
<uc:Simulation Grid.Column="1" />
</Grid>
</Grid>
Update: Ich muss zugeben, dass Jetzt, wo ich den Code für beide Ansätze geschrieben habe, sieht die "span" -Lösung viel besser aus.