是否可以在UniformGrid上设置列和行之间的特定间距
UniformGrid的默认行为是这样的:
<UniformGrid Columns="2" Rows="2">
<Button Content="1"/>
<Button Content="2"/>
<Button Content="3"/>
<Button Content="4"/>
</UniformGrid>

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

发布于 2020-08-06 01:56:34
不,不能直接在UniformGrid中,但您可以将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中,并对其应用通用的页边距样式。
<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>https://stackoverflow.com/questions/63270784
复制相似问题