WPF 如何设置列和行之间的 UniformGrid 间距

WPF How to set a UniformGrid spacing between colums and rows

是否可以在 UniformGrid 上设置特定的列和行间距?

UniformGrid 的默认行为是这样的:

<UniformGrid Columns="2" Rows="2">
    <Button Content="1"/>
    <Button Content="2"/>
    <Button Content="3"/>
    <Button Content="4"/>
</UniformGrid>

但我希望它看起来像这样:

不,不直接在UniformGrid中,但你可以在其children中添加一个Margin。如果多个children需要相同的间距,只需将它们提取到一个样式即可。对于您的示例,它看起来像这样:

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

一般来说,如果您不想为每个控件定义样式,并且希望 child 控件的间距统一,您可以将它们嵌套在 Border 中,并为边距应用通用样式

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