小编典典

如何分隔 StackPanel 的子元素?

all

给定一个 StackPanel:

<StackPanel>
  <TextBox Height="30">Apple</TextBox>
  <TextBox Height="80">Banana</TextBox>
  <TextBox Height="120">Cherry</TextBox>
</StackPanel>

即使子元素本身的大小不同,将子元素隔开以使它们之间存在相同大小的间隙的最佳方法是什么?可以在不为每个单独的孩子设置属性的情况下完成吗?


阅读 57

收藏
2022-07-01

共1个答案

小编典典

使用 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>
2022-07-01