是否可以在 a 上的列和行之间设置特定的间距UniformGrid
?
a 的默认行为UniformGrid
是这样的:
<UniformGrid Columns="2" Rows="2">
<Button Content="1"/>
<Button Content="2"/>
<Button Content="3"/>
<Button Content="4"/>
</UniformGrid>
但我希望它看起来像这样:
UniformGrid
?a 的默认行为UniformGrid
是这样的:
<UniformGrid Columns="2" Rows="2">
<Button Content="1"/>
<Button Content="2"/>
<Button Content="3"/>
<Button Content="4"/>
</UniformGrid>
但我希望它看起来像这样:
不,不是直接在 中UniformGrid
,但您可以将 a 添加Margin
到其子项中。如果您需要多个孩子的间距相同,只需将它们提取到一个样式中。对于您的示例,它看起来像这样:
<UniformGrid Columns="2" Rows="2">
<Button Content="1" Margin="0, 0, 10, 10"/>
<Button Content="2" Margin="10, 0, 0, 10"/>
<Button Content="3" Margin="0, 10, 10, 0"/>
<Button Content="4" Margin="10, 10, 0, 0"/>
</UniformGrid>
通常,如果您不想为每个控件定义样式并且希望子控件的间距一致,则可以将它们嵌套在Border
s 中并为其应用一个通用样式的边距。
<UniformGrid Rows="1" Columns="3">
<UniformGrid.Resources>
<Style x:Key="BorderSpacingStyle" TargetType="{x:Type Border}">
<Setter Property="Margin" Value="10"/>
</Style>
</UniformGrid.Resources>
<Border Style="{StaticResource BorderSpacingStyle}">
<Button Content="0"/>
</Border>
<Border Style="{StaticResource BorderSpacingStyle}">
<Button Content="1"/>
</Border>
<Border Style="{StaticResource BorderSpacingStyle}">
<Button Content="2"/>
</Border>
</UniformGrid>