2009-12-07 24 views
8

¿Cómo agregar fácilmente un relleno de celdas para una Grilla en Silverlight? Para establecer los márgenes para cada celda se ve muy ruidoso.Silverlight (3.0): ¿Cómo agregar relleno de celdas a una cuadrícula?

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="Auto" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 

<TextBlock Text="Type:" Grid.Column="0" Grid.Row="0"></TextBlock> 
<ComboBox Grid.Column="1" Grid.Row="0"></ComboBox> 
<TextBlock Text="Length:" Grid.Column="0" Grid.Row="1" ></TextBlock> 
<TextBox Grid.Column="1" Grid.Row="1"></TextBlock> 

+0

casi no dicen que la adición de margen a cada célula era "muy ruidoso". – AnthonyWJones

Respuesta

13

Alguien probablemente me crucificarán por la fealdad de esta solución, pero se puede añadir filas y columnas con altura y anchura se establece en el doble de sus valores de relleno entre las filas reales y columnas que contienen datos:

<Grid> 
<Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="4" /> 
    <RowDefinition Height="Auto" /> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
    <ColumnDefinition Width="Auto" /> 
    <ColumnDefinition Width="4" /> 
    <ColumnDefinition Width="*" /> 
</Grid.ColumnDefinitions> 
<TextBlock Text="test" Grid.Column="0" Grid.Row="0" /> 
<TextBlock Text="test" Grid.Column="0" Grid.Row="2" /> 
<TextBlock Text="test" Grid.Column="2" Grid.Row="0" /> 
<TextBlock Text="test" Grid.Column="2" Grid.Row="2" /> 
</Grid> 
+0

Por el contrario, he encontrado que esta es una solución bastante buena en el pasado. –

+0

que he usado en el pasado, pero me llevó frutos secos, estaba siempre mis-cálculo de la fila y la columna número correcto para aplicar a un elemento. – AnthonyWJones

+0

@ Anthony - Yo tenía el mismo problema al trabajar el ejemplo :) Pero entonces, toda la sintaxis de cuadrícula y la construcción es, en mi opinión, muy feo. Solo he usado una cuadrícula 1x1 en producción; todo lo demás es StackPanels y Borders. – Klay

2

Yo personalmente prefiero usar los márgenes. Para limpiarlo un poco, puedes refactorizarlos en estilos. Incluso podría ir un paso más allá y usar un administrador de estilo Implícito.

Si realmente quería algo limpio, se puede hacer un acolchado adjunta propiedad que controlar el evento rejilla cargada y luego establecer los márgenes de todos los niños.

Cuestiones relacionadas