Silverlight(3.0):如何向网格添加单元格填充?

时间:2009-12-07 17:07:55

标签: silverlight silverlight-3.0 grid

如何在Silverlight中轻松添加网格的单元格填充?为每个单元格设置边距看起来非常嘈杂。

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

2 个答案:

答案 0 :(得分:13)

有人可能会因为此解决方案的丑陋而将我钉在十字架上,但您可以添加行和列,其高度和宽度设置为包含数据的实际行和列之间的填充值的两倍:

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

答案 1 :(得分:2)

我个人更喜欢使用边距。为了清理它,你可以将它们重构为样式。您甚至可以更进一步使用Implicit样式管理器。

如果你真的想要干净的东西,你可以创建一个padding附加属性来处理网格加载事件,然后设置所有子节点的边距。