如何在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>
答案 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附加属性来处理网格加载事件,然后设置所有子节点的边距。