Silverlight (3.0): How to add cell padding to a Grid?

Sven Sönnichsen picture Sven Sönnichsen · Dec 7, 2009 · Viewed 7.6k times · Source

How to add easily a cell padding for a Grid in Silverlight? To set Margins for each cell looks very noisy.

<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>

Answer

Klay picture Klay · Dec 7, 2009

Someone will probably crucify me for the ugliness of this solution, but you can add Rows and Columns with Height and Width set to twice your padding values in between the actual rows and columns that contain data:

<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>