J'essaye de placer le remplissage d'un StackPanel mais il n'y a pas une telle propriété. J'ai essayé StackPanel.Border, mais il n'y a pas une telle propriété non plus.Rembourrage sur StackPanel?
Des idées?
J'essaye de placer le remplissage d'un StackPanel mais il n'y a pas une telle propriété. J'ai essayé StackPanel.Border, mais il n'y a pas une telle propriété non plus.Rembourrage sur StackPanel?
Des idées?
Vous pouvez placer une bordure autour du StackPanel et définir un remplissage. Je finis par le faire beaucoup, car il y a beaucoup de UIElements qui n'ont pas de propriété de remplissage.
<Border Padding="10">
<StackPanel>
<!--...-->
</StackPanel>
</Border>
(Note: tous les FrameworkElements ont une propriété de marge, ce qui place l'élément, mais ne comprend pas la largeur de la marge dans le cadre du ActualWidth).
Si vous voulez espacer les éléments à l'intérieur d'un StackPanel, vous devez ajouter une marge à chaque enfant comme Rob l'a dit.
Se pourrait-il que ce soit Margin que vous recherchez?
Marge fonctionnerait si l'on ne plaisante pas avec ... – Califf
Vous souhaiterez probablement ajouter une marge aux éléments du panneau. Vous obtiendrez le même résultat, il suffit de l'approcher en arrière.
arrière-plans vous dire faire en elle un seul endroit est pire que d'ajouter une marge à la douzaine d'éléments à l'intérieur de la pile? – Califf
Non ... il dit que c'est la prochaine façon la plus facile, vu que le StackPanel n'a pas vraiment de propriété Padding. – TernaryTopiary
Ou vous pourriez faire quelque chose de similaire à TiM:
<Border>
<StackPanel Margin="10">
...
</StackPanel>
</Border>
si vous voulez dire que vous voulez espacer les éléments enfants du StackPanel (qui ne dispose pas d'une propriété Padding), voir: How do I space out the child elements of a StackPanel?
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>
C'est correct, mais cela annulera (ou non) toute marge que vous essayez de définir sur vos boutons. C'est peut-être bien, mais vous perdez de la flexibilité ici. De plus, si vous voulez appliquer un style à tous les contrôles d'une portée de ressources, n'utilisez pas de 'x: Key'. Donc, mettre deux styles ici est inutile. Enlevez le second (avec 'BasedOn') et débarrassez-vous de l'attribut' x: Key' sur le premier. Si vous voulez qu'il s'applique uniquement aux boutons, utilisez-le comme type de cible, sinon vous pouvez le laisser tel quel. – KyleMit
Existe-t-il un moyen de créer un style avec 'StackPanel' en tant que' ContentTemplate'? – bytecode77
Désolé, je ne sais pas. Cela fait des années que j'ai utilisé WPF. Espérons qu'un gentil inconnu arrive, qui sait. –