Estoy haciendo una interfaz de usuario en WPF, tengo un montón de áreas funcionales y utilizo una cuadrícula para organizarlo.Lo que es mejor en WPF para el diseño de la interfaz de usuario, usando una cuadrícula, o cuadrículas anidadas
Ahora la cuadrícula que quiero no es uniforme, como en, alguna área funcional abarcará varias celdas en la cuadrícula. Me preguntaba cuál es la mejor práctica para resolver esto. ¿Debo crear una cuadrícula y luego para cada área funcional configurarla para que abarque varias celdas, o debería dividirla en múltiples Grillas anidadas?
En esta imagen, el panel de la izquierda (paneles separados por la barra gris) es lo que quiero. El panel central muestra una cuadrícula donde las líneas azules están superpuestas por un área funcional. El panel de la derecha muestra cómo podría hacerlo con grillas anidadas. Puedes ver que la grilla verde tiene una división horizontal. En la celda inferior está la Grilla amarilla con una división vertical. En el lado de la celda izquierda está la Red Grid con nuevamente una división horizontal. Grids http://www.freeimagehosting.net/uploads/08f2711bae.jpg
Me preguntaba cuáles son las mejores prácticas, el panel central o el derecho.
ACTUALIZACIÓN: Sólo una aclaración, una forma más 'código orientado' ejemplo:
el panel central
<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>
El panel de la derecha:
<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>
Actualización: Tengo que admitir que ahora que escribí el código para ambos enfoques, la solución "span" se ve mucho mejor.