Existe-t-il un moyen dans Silverlight 4 de dicter que tous les éléments d'un StackPanel
doivent avoir une marge, au lieu de spécifier margin="10,0"
sur chacun d'entre eux?Silverlight: Tous les descendants d'un élément ont-ils une marge?
Répondre
Mettez votre StackPanel dans un élément de frontière et définir la frontière Rembourrage à « 10 0 »
Je crains que ce n'est pas possible déclarative en XAML avec le StackPanel
directement. C'est la philosophie conceptuelle dans Silverlight/WPF qu'un panel ne devrait pas modifier les propriétés de ses enfants. Ainsi, vous pouvez mettre en œuvre votre propre groupe qui fait de toute façon, ou vous pouvez utiliser une ItemsControl
comme ça:
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentPresenter Margin="10,0" Content="{Binding Content}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
[...]
</ItemsControl>
Un ItemsControl
utilise un StackPanel
par défaut, vous pouvez utiliser sa propriété ItemsPanel
pour définir un autre panneau comme ItemsPanelTemplate
si vous le souhaitez.
Vous pouvez également vous assurer que ItemsControl se comporte comme un StackPanel en spécifiant son 'ItemsPanel' à un StackPanel. Bien que ce soit probablement le défaut. Au moins, vous pouvez contrôler l'orientation. –
Vous pouvez également le faire par programme; votre StackPanel a une collection enfants. Vous pouvez l'utiliser pour parcourir et définir la marge.
La façon dont je le ferais est en définissant des styles implicites dans les ressources de StackPanel, pour chaque type de contrôle qui sera utilisé dans le StackPanel. Pour enregistrer la définition de la valeur à plusieurs reprises pour chaque type de contrôle, vous pouvez créer un style de base nommé qui cible FrameworkElement et définit le (s) style (s) à partir duquel le style de chaque type de contrôle peut hériter. Un exemple est ci-dessous:
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Style x:Key="CommonStyle" TargetType="FrameworkElement">
<Setter Property="Margin" Value="10,0" />
</Style>
<Style TargetType="Button" BasedOn="{StaticResource CommonStyle}" />
<Style TargetType="TextBlock" BasedOn="{StaticResource CommonStyle}" />
<Style TargetType="CheckBox" BasedOn="{StaticResource CommonStyle}" />
</StackPanel.Resources>
<Button>Button</Button>
<TextBlock Text="Text" />
<CheckBox>Check Box</CheckBox>
</StackPanel>
Notez comment chaque contrôle dans le StackPanel aura la marge appliquée, sans avoir besoin de définir sur chaque commande.
Hope this helps ...
Chris Anderson
PS. Auto-promotion flagrante - ceci est basé sur le tour de l'héritage dans mon livre Pro Business Applications with Silverlight 4 :).
- 1. jQuery Supprimer simultanément une classe CSS de tous les descendants
- 2. MySQL: Obtenez tous les sous-catégories, descendants
- 3. obtenir une liste de tous les descendants d'un élément dans mootools
- 4. Classe d'amis et tous ses descendants
- 5. Test pour les objets descendants
- 6. Silverlight 4 RichTextbox Paragraphe Marge ou similaire?
- 7. requête récursive qui se retourne et tous ses descendants
- 8. Animation de propriété Silverlight et liée aux données (Marge)
- 9. Trouver élément dont tous les enfants ont une valeur donnée
- 10. Le modèle XSL traite tous les descendants, pas seulement les enfants
- 11. Permettant indicateur de sélection d'un élément dans ListBox à superposer tous les éléments dans Silverlight
- 12. afficher tous les attributs d'un élément
- 13. Marge automatique avec élément de bloc dans IE7
- 14. HasMany <MySubtype> le mappage renvoie le super-type et tous les descendants?
- 15. trouver tous les contrôles descendants d'un contrôle donné sans récursion explicite?
- 16. Silverlight Listbox Élément Style
- 17. Comment développer tous (ou les descendants du noeud sélectionné) d'un plist à la fois?
- 18. Des requêtes pour obtenir tous les ancêtres/descendants d'un arbre dans un db?
- 19. héritage CSS: sélecteur pour appliquer lui-même et tous les descendants
- 20. Jquery cachant tous les descendants d'un ul tag ... montrant des éléments enfants comme menu de l'arbre
- 21. Modifier la largeur de tous les éléments qui sont des descendants d'un div id = "content"
- 22. css: marge gauche wont lorsqu'il existe un élément de flotteur
- 23. obtenir la taille de la marge d'un élément avec jquery
- 24. jQuery - Différents sélecteurs pour les descendants?
- 25. élément sélectionné dans Silverlight DataGrid
- 26. C# memberwisecopy et descendants
- 27. XPathSelectElement vs Descendants
- 28. Rembourrage de marge de menu CSS/marge
- 29. Comment effacer tous les formulaires/données de grille dans Silverlight?
- 30. Méthode générique pour trouver tous les contrôles TextBox dans Silverlight
Pourquoi la bordure est-elle nécessaire lorsque StackPanel a une propriété Margin? Cela ne tient pas non plus compte de la marge entre chaque enfant, ce que le PO veut probablement faire. –