我想在WPF中实现类似于HTML-cellspacing的效果。我试图通过创建一个自定义的Grid类来覆盖Grid,并修改MeasureOverride和ArrangeOverride以获得所需的行为。即网格中的每个单元格应该与其他单元格有固定的间距(而不是填充)。如何实现这一点?
我想在WPF中实现类似于HTML-cellspacing的效果。我试图通过创建一个自定义的Grid类来覆盖Grid,并修改MeasureOverride和ArrangeOverride以获得所需的行为。即网格中的每个单元格应该与其他单元格有固定的间距(而不是填充)。如何实现这一点?
<Grid Margin="1.5">
...
<Label Grid.Row="0" Grid.Column="0" Margin="1.5">...</Label>
<TextBox Grid.Row="0" Grid.Column="1" Margin="1.5">...</TextBox>
...
</Grid>
<Grid Margin="1.5">
<Grid.Resources>
<Style TargetType="Label">
<Setter Property="Margin" Value="1.5"/>
</Style>
<Style TargetType="TextBox">
<Setter Property="Margin" Value="1.5"/>
</Style>
</Grid.Resources>
...
<Label Grid.Row="0" Grid.Column="0">...</Label>
<TextBox Grid.Row="0" Grid.Column="1">...</TextBox>
...
</Grid>
但是,四个半边距是实现CellSpacing的一种快速方法,然后如果需要更复杂的东西,您可以调整边距。
我找到了一篇关于创建自定义网格面板并处理单元格间距的博客文章:http://daniel-albuschat.blogspot.dk/2011/07/gridlayout-for-wpf-escape-margin-hell.html
<Style TargetType="{x:Type toolkit:DataGridCell}">
<Setter Property="Margin" Value="3" />
</Style>