给定一个 StackPanel:
<StackPanel> <TextBox Height="30">Apple</TextBox> <TextBox Height="80">Banana</TextBox> <TextBox Height="120">Cherry</TextBox> </StackPanel>
即使子元素本身的大小不同,将子元素隔开以使它们之间存在相同大小的间隙的最佳方法是什么?可以在不为每个单独的孩子设置属性的情况下完成吗?
使用 Margin 或 Padding,应用于容器内的范围:
<StackPanel> <StackPanel.Resources> <Style TargetType="{x:Type TextBox}"> <Setter Property="Margin" Value="0,10,0,0"/> </Style> </StackPanel.Resources> <TextBox Text="Apple"/> <TextBox Text="Banana"/> <TextBox Text="Cherry"/> </StackPanel>
编辑:如果您想重新使用两个容器之间的边距,您可以将边距值转换为外部范围内的资源,fe
<Window.Resources> <Thickness x:Key="tbMargin">0,10,0,0</Thickness> </Window.Resources>
然后在内部范围内引用这个值
<StackPanel.Resources> <Style TargetType="{x:Type TextBox}"> <Setter Property="Margin" Value="{StaticResource tbMargin}"/> </Style> </StackPanel.Resources>