67 votes

Rembourrage sur StackPanel?

J'essaie de définir le rembourrage d'un StackPanel mais il n'y a pas une telle propriété. J'ai essayé StackPanel.Border, mais cette propriété n'existe pas non plus.

Des idées?

110voto

Tim Swast Points 3697

Vous pouvez placer une bordure autour de StackPanel et définir un remplissage sur celle-ci. Je finis souvent par le faire, car de nombreux UIElements n’ont pas de propriété de remplissage.

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

(Remarque: tous les FrameworkElements ont une propriété Margin, qui espacera l'élément, mais n'inclura pas la largeur de la marge dans le cadre de ActualWidth).

Si vous souhaitez espacer les éléments à l'intérieur d'un StackPanel, vous voudrez ajouter une marge à chaque enfant, comme l'a dit Rob.

6voto

George Birbilis Points 321

si vous voulez dire que vous voulez espacer les éléments enfants de StackPanel (qui n'a pas de propriété Padding), voir: Comment puis-je espacer les éléments enfants d'un StackPanel?

6voto

Oliver Points 2004

Ou vous pouvez faire quelque chose de similaire à TiM:

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

3voto

Rob Points 792

Vous voudrez probablement ajouter une marge aux éléments du panneau. Vous obtiendrez le même résultat, il vous suffira de l'aborder en arrière.

2voto

user2934842 Points 1

Ceci est une variante de remplissage 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>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X