在StackPanel上填充?

我想设置一个StackPanel的填充,但没有这样的属性。 我试过StackPanel.Border,但是也没有这样的属性。

有任何想法吗?

你可以在StackPanel周围放一个边框,并在其上设置填充。 我最终做了很多,因为有很多UIElements没有填充属性。

<Border Padding="10"> <StackPanel> <!--...--> </StackPanel> </Border> 

(注意:所有的FrameworkElements都有一个Margin属性,它将间隔元素,但不包括边距宽度作为ActualWidth的一部分)。

如果你想在StackPanel里面放置物品,你可以像Rob说的那样为每个孩子添加一个边距。

如果你的意思是你想要的空间StackPanel的子元素(没有Padding属性),请参阅: 如何间隔出StackPanel的子元素?

您可能需要为面板中的项目添加保证金。 你会得到同样的结果,只需要向后靠近。

或者你可以做一些类似于TiM的东西:

 <Border> <StackPanel Margin="10"> ... </StackPanel> </Border> 

这是StackPanel元素的填充变体

 <StackPanel Orientation="Horizontal" Grid.Row="2"> <StackPanel.Resources> <Style x:Key="StackPanelPadding" TargetType="Control"> <Setter Property="Margin" Value="5,0,0,0"/> <Setter Property="Height" Value="40"/> </Style> <Style BasedOn="{StaticResource StackPanelPadding}" TargetType="Button"/> </StackPanel.Resources> <Button/> <Button/> </StackPanel> 

这可能是你正在寻找的保证金吗?