我试图设置StackPanel的填充,但是没有这种属性。我尝试了StackPanel.Border,但是也没有这样的属性。
有任何想法吗?
我试图设置StackPanel的填充,但是没有这种属性。我尝试了StackPanel.Border,但是也没有这样的属性。
有任何想法吗?
Answers:
您可以在StackPanel周围放置边框,并在其上设置填充。我最终做了很多事情,因为有很多UIElement没有padding属性。
<Border Padding="10">
<StackPanel>
<!--...-->
</StackPanel>
</Border>
(注意:所有FrameworkElement都具有Margin属性,该属性将间隔元素,但不包括marginWidth作为ActualWidth的一部分)。
如果您想在StackPanel内部放置项目,则需要为每个孩子添加一个边距,如Rob所说。
如果您是想间隔出StackPanel的子元素(不具有Padding属性),请参阅:如何间隔出StackPanel的子元素?
您可能需要向面板中的项目添加边距。您将得到相同的结果,只需要向后处理即可。
这是StackPanel元素的padding的变体
<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>
x:Key
。因此,此处不必设置两种样式。删除第二个(带有BasedOn
),并删除第一个的x:Key
属性。如果只希望将其应用于按钮,则将其用作目标类型,否则可以将其保留原样。
StackPanel
as创建样式ContentTemplate
?