0

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

a 的默认行为UniformGrid是这样的:

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

普通的

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

我想要的是

4

1 回答 1

1

不,不是直接在 中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>

通常,如果您不想为每个控件定义样式并且希望子控件的间距一致,则可以将它们嵌套在Borders 中并为其应用一个通用样式的边距。

<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>
于 2020-08-05T17:56:34.103 回答