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?

Était-ce utile?

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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top