Rembourrage sur StackPanel?
-
19-09-2019 - |
Question
Je suis en train de définir le remplissage d'un StackPanel, mais il n'y a pas ces biens. J'ai essayé StackPanel.Border, mais il n'y a pas de telle propriété soit.
Toutes les idées?
La solution
Vous pouvez mettre une bordure autour du StackPanel et mettre un rembourrage sur ce point. Je finis par le faire beaucoup, car il y a beaucoup UIElements qui ne sont pas une propriété de rembourrage.
<Border Padding="10">
<StackPanel>
<!--...-->
</StackPanel>
</Border>
(Note: tous les FrameworkElements ont une propriété de marge, qui sera l'élément espace, mais ne comprend pas la largeur de la marge dans le cadre du ActualWidth)
.Si vous voulez espacer les objets à l'intérieur d'un StackPanel, vous aurez envie d'ajouter une marge à chaque enfant comme Rob a dit.
Autres conseils
si vous voulez dire que vous voulez espacer les éléments enfants du StackPanel (qui ne sont pas une propriété padding), voir: Comment puis-je espacer les éléments enfants d'un StackPanel
Ou vous pourriez faire quelque chose de similaire à TiM:
<Border>
<StackPanel Margin="10">
...
</StackPanel>
</Border>
Vous voulez probablement ajouter la marge aux éléments dans le panneau à la place. Vous obtiendrez le même résultat, il suffit de l'approcher en arrière.
pourrait-il être la marge que vous cherchez?
Ceci est une variante de rembourrage pour les éléments de 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>